使用Excel 2013,在两个单元格中输入这个结果会得到不同的结果。Excel中的圆函数(工作表一)
=ROUND((10.45-10.00)/1,1) = 0.4
但
=ROUND(0.45/1,1) = 0.5
而且我不知道为什么是这样的情况。任何人都有解释?
使用Excel 2013,在两个单元格中输入这个结果会得到不同的结果。Excel中的圆函数(工作表一)
=ROUND((10.45-10.00)/1,1) = 0.4
但
=ROUND(0.45/1,1) = 0.5
而且我不知道为什么是这样的情况。任何人都有解释?
因为Excel使用浮点数学,所以结果不能保证精确。在我的Excel 2013安装中,如果我在单元格中输入=10.45-10.00
,则将该单元格更改为数字,精度为30位小数,实际答案为0.449999999999999000000000000000
。由于0.44999...
和0.45
位于舍入边界的相反侧,所以它们以不同方式舍入小数点后一位。
编辑参见this answer和问题等回答,这深究为什么Excel的数学是不准确的更多的细节。
它看起来像顶级计算创造了无限小的差异。为了看到这一点,将公式从ROUND函数中拉出来。使用“增加十进制”按钮,将两个值都扩展到15个以上的小数位。你会看到最高值实际上是0.449999999999999。
我不知道为什么它实际上这样做。