IEEE 754 浮点除法或减法本身是否总是产生相同的值?

Does IEEE 754 float division or subtraction by itself always result in the same value?

除非 IEEE 754 为 NaN、+-0.0 或 +-Infinity,否则除以其自身是否保证正好为 1.0?

同样,减去自身是否保证总是产生 +-0.0?

如果使用相同的文字值,则自除和减去自身 - 是的,IEEE754 需要产生最接近和一致的匹配。

IEEE 754-2008 4.3 说:

… Except where stated otherwise, every operation shall be performed as if it first produced an intermediate result correct to infinite precision and with unbounded range, and then rounded that result according to one of the attributes in this clause.

当中间结果可表示时,所有舍入属性都将其舍入到自身;舍入仅在无法表示时更改值。 5.4中给出了减法和除法的规则,上面没有说明例外。

根据 3.3,零和一是可表示的,它指定了可以以符合标准的任何格式表示的数字集。特别是,零可以用全零数字的有效数字表示,而一个可以用以 1 开头、后跟“.000…000”和零指数的有效数字表示。定义格式的最小和最大指数,以便它们始终包含零(emin 是 1−emax,因此它们之间为零,包括在内,除非 emax 小于 1,在这种情况下没有数字可表示, 格式为空,而不是实际格式)。

由于舍入不会改变可表示的值,而 0 和 1 是可表示的,因此有限 non-zero 值除以自身总是产生 1,而从自身减去有限值总是产生零。