我在 Excel 中产生了一个非常简单且具有挑战性的数字计算错误,我很好奇其原因以及可能的解决办法:
| A | B |
----------------------------------
1 | X | 693.702 |
----------------------------------
2 | Y | 693.702 |
----------------------------------
3 | Y - X | 0.0000000000E0 |
----------------------------------
4 | (Y - X) | 1.1368683772E-13 |
----------------------------------
本质上,在上面的代码中,B1 和 B2 包含相同的值,B3 包含差值=B2-B1
,B4 包含括号中的相同值(B2-B1)
。返回的值明显不同。
答案1
我无法复制此结果,但看起来您只是达到了 Excel 版本的浮点精度。我无法复制的一个原因是,如果您的值 X 和 Y 是其他计算的结果。
这没什么好担心的,但可能会很烦人。(我说没什么好担心的,因为与正确结果的差异是无穷小的,0.00000000000011368...)