2025-11-20 05:33:33
为啥python里小数加起来不对劲呢?因为电脑用二进制算数呀!像0点1这种十进制小数在二进制里得拆成无限循环小数,存到内存里只能截取几位,所以加起来就会有点误差。比如0点1加0点2本来该等于0点3,但实际算出来可能是0点000004这种。
这是因为二进制和十进制在表示小数时没法定全对应,就像用算盘算1/3一样永远落不下准确值。具体来说,0点1的二进制是0.11...无限循环,存成64位浮点数就变成0.65625。同样0点2二进制是0.1...,存成0.828125。两个数相加得到0.000004,这其实是四舍五入后的结果。根据IEEE754标准,浮点数在运算时会保留15位有效数字,所以一位0点3后面的数字会被截断并进位,导致出现这种小数点后15位的奇怪结果。
本题链接: