Excel 2010 浮点数中的加法顺序重要吗?

Excel 2010 浮点数中的加法顺序重要吗?

我在 Excel 2010 中输入了一些数字,然后注意到似乎存在浮点问题。我计算了四个数字的总和,期望结果为零,结果得到了非常很小的一个数,接近于零。我想,“好吧,浮点数问题,当然可以。”但后来我注意到,如果你以不同的顺序将它们相加,结果的总和是零。

为什么以不同的顺序添加它们会影响 Excel?我没想到这一点。是的,我意识到 1.13E-13 非常小,而且非常接近于零。我想知道为什么根据加法顺序计算会有差异。

Excel 屏幕截图

原始数据如下:

573.7   
-144.79 
-309.84 
-119.07 
1.136868E-13    =sum(A1:A4)
0.000000E+00    =A1+A2+A3+A4
1.13687E-13 =A4+A3+A2+A1

答案1

如果你使用评估公式在 Excel 中,您可以看到中间结果中 a+b+c+d 是从左到右解析的。因此,a+b+c+d 实际上是计算为 ((a+b)+c)+d。

换句话说,首先计算 a+b 的结果(并以 IEEE754 格式存储),然后将 c 添加到该结果中,等等。

这也解释了为什么结果不同,因为(考虑到中间结果的不准确性),((a+b)+c)+d 不等于 a+(b+(c+d))。

相关内容