设x,y和z为浮点数。那么(x + y)+ z = / = x +(y + z)是真的吗?有人能举个例子吗?我希望x,y和z是浮点数(IEEE表示),而不仅仅是任何实数。
答案 0 :(得分:2)
正如你所说的那样,通常情况并非如此。存在x,y和z,使得(x+y)+z = x+(y+z)
。但你可能想问(x+y)+z = x+(y+z)
是否总是如此。并非总是如此。
一个明显的反例是(2 64 + -2 64 )+ 1和2 64 +( - 2 64 < / sup> + 1)。使用64位二进制IEEE-754算法,前者为0 + 1 = 1,后者为2 64 + -2 64 = 0.在后者中,由于-2 64 的幅度非常大,所以1丢失了,因此总和没有足够的精度来包含1。
还有更微妙的案例,其中只有一个号码的一部分丢失。