2025-11-08 05:27:55
电脑用二进制存数,但小数点后的数字可能存不下,比如0.1这个数在二进制里是无限循环的,所以存不下。存不下就会变成近似值,用的时候就会产生误差。
因为二进制用科学计数法存浮点数,比如单精度32位只能存7位小数,双精度64位存15位小数。比如0.1用二进制表示是0.11...无限循环,存到第七位就变成0.0001101,这样算0.1加0.1就会变成0.0000011,多出0.0000011这个误差。再比如1除以3等于0....,存到15位就变成0.33333,少掉后面的小数部分。这种误差在计算过程中会越积越多,比如累加100次就会差出0.00001,这就是为什么浮点数计算不能完全精确的原因。
本题链接: