假设a
是一个浮点数。那么a * 1.0 == a
是否总是成立的?
假设a
是一个浮点数。那么a * 1.0 == a
是否总是成立的?
a
为NaN
时,根据定义,NaN * 1.0 = NaN
,但NaN
与自身不相等。但即使如此,在两边得到的结果也可以说是相同的。然而,如果你关心的话,NaN
的有效负载可能是不同的,这可能会有所区别,特别是在系统区分静默NaN和信号NaN的情况下。a
是一个可表示的浮点数,将其乘以1.0
的数学结果在被解释为无限精度数字时确切地给出了a
。不需要舍入,因为a
已经是可表示的。所以,除了讨论过的退化的NaN
情况外,你可以保证a * 1.0 == a
。a
是一个可表示的浮点数,将其乘以1.0
的数学结果在无限精度的解释下恰好等于a
。舍入操作将其还原回原来的值。所以,你可以确保a * 1.0 == a
,除了讨论过的特殊情况NaN
。 - alias