2025-11-20 05:48:51
浮点数存储是二进制,转换时遇到十进制会出问题比如1.1加0.1等于1.。这就像用算盘算小数,每个格子只能存有限位数,格子不够了就四舍五入。比如温度计显示20.5度,实际存储可能是20.50000001度,这叫精度损失。
这是因为二进制用0和1表示所有数字,但像1/3这种无限循环小数在二进制里也变无限循环,计算机只能存到第32位或第64位就截断了。比如用64位浮点数存1/10,实际值是0.3125,比真实值多了5.55e-16误差。当计算多个浮点数时,误差会像滚雪球越滚越大,比如计算1.0+2.0+3.0会得到6.0001。这种误差在科学计算里很致命,比如航天器轨道计算差0.0001公里就会偏离目的地几百公里。
本题链接: