2025-11-08 06:53:45
浮点数就像用纸箱装西瓜,得先确定箱子的尺寸和装法。它把数字拆成三部分:符号(正负)、指数(放大多少倍)和尾数(具体数值)。比如3.14会变成符号1(正)、指数0(10的0次方)和尾数314。但纸箱只能装整数,遇到小数点就得拆开,比如0.1要拆成1乘以10的负一次方,这时候尾数就变成1,实际存储的是1.0,所以永远算不准0.1+0.2=0.3。
为什么这样设计呢?因为要兼顾存储效率和计算速度。根据IEEE 754标准,单精度浮点数用32位,其中1位符号,8位指数,23位尾数。这样能表示大约16亿个不同值,但尾数只有23位二进制,最多精确到小数点后7位。比如计算0.1+0.2,实际得到0.300000014,误差是1.4e-8。双精度用64位,尾数多出29位,能精确到小数点后15位,但同样无法表示所有十进制数。测试时用计算器算1/3,单精度显示0.33333334,双精度显示0.33333,这就是精度差异。实际应用中,科学计算用双精度,而普通计算器可能用单精度,所以算钱要小心,算航天器轨道要更仔细。
本题链接: