无限浮点数是否满足这些方程?

时间:2014-12-31 13:20:04

标签: c++ floating-point infinity

表示double或float,

1。 -inf < inf == true

2。 inf + inf == inf

3。 -inf - inf == -inf

4。 positive / 0.0 == inf

5。 negative / 0.0 == -inf

6。 any real number < inf == true

7。 -inf < any real number == true

这句话是真的吗?

我们不知道(inf < inf),但我们可以肯定它不会引发任何例外。

1 个答案:

答案 0 :(得分:5)

当您的问题中的所有表达式1-7在由实现IEEE 754规则的编译器编译时评估为true。它们都不依赖于舍入模式。对于许多人来说,这只是因为<==是精确的操作。此外,-inf - inf始终为-inf(即,在所有舍入模式下),positive / 0.0始终为+infnegative / 0.0始终为-inf }。

在下面的6.和7.中,通常将您所指的值称为“有限”而不是“真实”。

  
      
  1. 任何实数&lt; inf == true

  2.   
  3. -inf&lt;任何实数== true

  4.   

inf < inf总是评估为false。这与您问题中的所有属性1-7一样,应该被视为惯例问题。决定让inf等于它自己,因此它并不比它本身严格。所有这些选择旨在使IEEE 754算法在实践中尽可能有用。换句话说,目的是尽可能多地实现算法,而不必明确检查这些特殊值,并且计算在发生时继续有意义(适用时)。当特殊值没有意义时,当然总是有可能测试它们。