仅对于2个数字,浮点加法和乘法是否关联?

时间:2018-07-30 09:46:07

标签: floating-point addition ieee-754

根据Is Floating point addition and multiplication associative?,我知道A + B + C与A + C + B会有不同的结果,因为(A + B)+ C和(A + C)+ B的结果不同。

但是如果只有2个数字怎么办? A + B与B + A的结果相同吗?

1 个答案:

答案 0 :(得分:2)

首先,A + B是否与B + A产生相同结果的问题不是关于associativity,而是关于commutativity。要回答您的问题,我们需要知道浮点加法和乘法操作数的顺序是否会影响结果(与 associativity 问题的不同分组相反)。

现在,IEEE-754浮点加法和乘法是可交换的(但正如您在问题中正确指出的那样,不具有关联性)。

我可能应该在此处加一个星号,因为属于IEEE-754的不同NaN(实际上是它们的所谓有效负载)会违反可交换性,但是我不认为您对此特殊情况感兴趣。 / p>

还有another question on StackOverflow实际上回答了浮点运算的可交换性问题-但我认为可交换性关联性之间的混淆可能更好地解决这个问题。