根据Is Floating point addition and multiplication associative?,我知道A + B + C与A + C + B会有不同的结果,因为(A + B)+ C和(A + C)+ B的结果不同。
但是如果只有2个数字怎么办? A + B与B + A的结果相同吗?
答案 0 :(得分:2)
首先,A + B是否与B + A产生相同结果的问题不是关于associativity,而是关于commutativity。要回答您的问题,我们需要知道浮点加法和乘法操作数的顺序是否会影响结果(与 associativity 问题的不同分组相反)。
现在,IEEE-754浮点加法和乘法是可交换的(但正如您在问题中正确指出的那样,不具有关联性)。
我可能应该在此处加一个星号,因为属于IEEE-754的不同NaN(实际上是它们的所谓有效负载)会违反可交换性,但是我不认为您对此特殊情况感兴趣。 / p>
还有another question on StackOverflow实际上回答了浮点运算的可交换性问题-但我认为可交换性和关联性之间的混淆可能更好地解决这个问题。