EXCEL表里:43438110.61-41736845.7-1701264.91≠43438110.61-(41736845.7+1701264.91)这是为什么

来源:百度知道 编辑:UC知道 时间:2024/05/14 13:16:11

在存储数字时,对应的二进制数字可以表示每一个数字或分数。例如,分数 1/10 在十进制中可以表示为 0.1。但是,同一个数字在二进制格式中变成了二进制循环小数
0001100110011100110011(等等)
并且可以无限循环。此数字无法用有限的空间量来表示。因此,此数字在存储时向下舍入大约 -2.8E-17
当产生了一个因太小而无法表示的数字时,会发生下溢。在 IEEE 和 Excel 中,结果是 0(如果你用excel2007,你会发现第一个计算的结果是 -0 )
这个问题如果是你实际中遇到的,解决的办法是用ROUND 函数
=ROUND(43438110.61-41736845.7-1701264.91,2) 的结果就是0了和你的另外一个数就相等了

我做了一次,发现是相同的哦,你是不是在某一方面设置不对啊!