Excel 2010 从答案中减去少量

Excel 2010 从答案中减去少量

Excel 2010 似乎正在从货币值中减去 0.000000000000001。我在电子表格的几个选项卡中都发现了这种情况。它看起来像这样:

(空白单元格) (空白单元格) 135.57 美元 135.57

-$42.38(空白单元格)$93.19 $93.19

(空白单元格)$1000.00 1093.19 1093.19

在 EI 列中,有方程式 =IF(C3=D3,"P","False"),第一行显示 P,第二行显示 False,第三行显示 P。第二行应该显示 P。

查看值的长度,我发现第一个 $93.19 的长度是 16 个字符!将其展开后,我得到 93.1899999999997

为什么这种情况会发生在 Excel 电子表格/工作簿的不同位置?我该如何纠正它?

谢谢

答案1

出现这种情况的原因是 Excel 内部使用 IEEE-754 浮点数,当今编写的几乎所有程序都是如此。IEEE-754 使用 2 进制而不是 10 进制,因此某些可以轻松以 10 进制表示的数字(例如 1/10)必须使用 2 进制表示法进行近似。

这个问题很难解决,因为这是现代 CPU 的一个特性,而不仅仅是 Excel。然而,在知识库文章中,微软建议您可以通过转到文件->Excel 选项->高级选项并打开“显示精度”来解决此问题,并确保工作簿中的每个单元格都具有您要查找的算术的正确精度。

或者,您可以使用 round() 函数将方程中关键点的那些微小错误四舍五入到您喜欢的精度。

相关内容