礼品代发网

礼品代发网

收录130107113题,礼品代发网免费搜题解答

今日已更新0道题

为什么float会丢失精度-为什么用float输出数据不准确

2025-11-20 05:31:35  

为什么float会丢失精度-为什么用float输出数据不准确

优质解答

浮点数为啥会乱掉呢?因为电脑用二进制存小数,像0.1这种十进制数在二进制里是无限循环的,只能存近似值。比如存0.1实际是0.01...这样,每次计算都带着小尾巴,加起来加多了就跑偏了。

为啥二进制会这样?因为浮点数的小数部分只能存有限位数,比如单精度32位只能存7位小数。假设用32位存0.1,实际存的是0....这样。每次运算都带着这个0.误差,加十次就变成0.000000001,但存的时候可能变成0.000000002,这样累积起来就差得更多了。比如计算0.1+0.2,二进制存成0.,显示就变成0.3了。存更多位数比如64位的double虽然好点,但遇到0.1+0.2+0.3还是差0.0000001。所以浮点数就像存钱,每次算账都可能有零头误差,存多了就成大问题了。

本题链接:

浮点数精度损失二进制存储