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

Sno*_*ent 1 c++ floating-point infinity

对于双重或浮动,

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),但我们可以肯定它不会抛出任何例外.

Pas*_*uoq 5

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

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

  1. 任何实数<inf == true

  2. -inf <任何实数== true

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