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

问题描述

除非IEEE 754是NaN,+-0.0或+ -Infinity,它自身除以保证精确到1.0?

类似地,减法本身是否保证总是导致+ -0.0?

解决方法

IEEE 754-2008 4.3说:

...除非另有说明,否则每项操作都应像首先产生无穷大的精度和无界的中间结果,然后按照本节中的一个属性将其四舍五入的方法进行。

当中间结果可表示时,所有舍入属性都将其舍入;四舍五入仅在值无法表示时才更改它。减法和除法规则在5.4中给出,并且没有规定上述例外情况。

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

由于舍入不会改变可表示的值,并且零和一是可表示的,因此,将有限的非零值本身除以总是产生1,而从其本身减去有限的值则总是产生零。

,

如果使用相同的文字值,则将其自身相除并相减-是的,IEEE754要求产生最接近且一致的匹配。