无限等于Java中的无限

时间:2016-10-14 08:08:41

标签: java

我想测试Java中的无穷大是否等于无穷大:

Double.POSITIVE_INFINITY == Double.POSITIVE_INFINITY

当结果证明是真的时,我对结果感到惊讶。我的问题是两个无限值如何相等?

1 个答案:

答案 0 :(得分:6)

因为Double.POSITIVE_INFINITY代表一个特定的数字,所以使用==将其与自身进行比较应该返回true。

此行为在JLS Sec 15.21.1中明确指定:

  

根据IEEE 754标准的规则执行浮点相等测试:

     
      
  • ...

  •   
  • 否则,相等运算符会认为两个不同的浮点值不相等。

         

    特别是,有一个值代表正无穷大,一个值代表负无穷大;每个比较仅与自身相等,每个比较不等于所有其他值。

  •