礼品代发网

礼品代发网

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

今日已更新0道题

为什么 浮点数-为什么浮点数不能直接比较是否相等

2025-11-20 05:30:00  

为什么 浮点数-为什么浮点数不能直接比较是否相等

优质解答

浮点数为啥不能直接比是否相等呢?啊,因为它用二进制存储的时候,像0.1这种十进制数得拆成无限循环小数。计算机只能存有限位数,得四舍五入。比如单精度浮点数有24位指数,23位尾数,存0.1的时候得截断,变成0.000000555...这样。再比如0.1加0.2,实际算出来是0.000004,跟0.3差个0.000004。所以直接比较就会出问题啊。

这是因为二进制存储精度有限,像单精度浮点数只能存到小数点后15位。比如0.1的二进制表示是0.011...无限循环,计算机存的时候得截断到23位尾数,变成0.0。这样每次运算都会累积误差,比如0.1+0.2实际算出来是0.000004。再比如比较0.1+0.2和0.3的时候,左边是0.000004,右边是0.00003,虽然看起来接近,但二进制存储下它们实际值不同。所以必须用浮点数专用比较方法,比如判断差值是否小于预设容差。

本题链接:

浮点数精度二进制存储