据我了解,在IEEE浮点中,以下标识确实总是适用:
x - 0.0 == x
但是由于与零号有关的问题,以下数学标识不一定总是适用:
0.0 - x == -x
这是正确的吗?
x - 0.0
替换x
将提供逐位相同的结果仅当朝-∞(“ down”)的舍入模式被排除时。但是,由于(-0)和(+0)在IEEE-754语义下比较相等,因此x - 0.0 == x
将在所有舍入模式下成立。
0.0 - x
替换-x
才能提供逐位相同的结果。但是,由于(-0)和(+0)在IEEE-754语义下比较相等,因此0.0 -x == -x
将在所有舍入模式下成立。就位等式(而不是浮点式比较)而言,还应注意,在IEEE-754(2008)中,
negate
操作是(如absolute value 和copysign操作)在位字符串操作方面进行了定义,因此将修改NaN的“符号位”(请参阅标准的6.3节)。在实现NaN有效载荷直通的平台上,如果x
是NaN,则在零级别上求和和取零的结果不同。