Java中Double类型的“ infinity”如何

时间:2018-07-27 04:54:17

标签: java oop

这可能是一个非常简单的问题,但我对此很困惑。

Double.MAX_VALUE给出的1.7976931348623157E308实际上是浮点字面量,因此是double

但是,Double.POSITIVE_INFINITY给出无穷大。类型Double infinity 如何?它看起来不是十进制数字,甚至不是数字。

请解释。

2 个答案:

答案 0 :(得分:4)

在IEEE 754的二进制级别(与Java浮点不完全相同),infinity is represented如下:

  

正负无穷表示如下:

     
      
  • sign = 0表示正无穷大,1表示负无穷大。

  •   
  • 偏置指数=全部为1位。

  •   
  • 分数=全部为0位。

  •   

答案 1 :(得分:0)

POSITIVE_INFINITY(及其对应的NEGATIVE_INFINITY)是Java用来通知您某些操作溢出的特殊常量,其中某些结果不再可以表示为Double(或Float)值,例如

System.out.println( 1E300 * 1E20 ); // Infinity
System.out.println( –1E300 * 1E20 ); // -Infinity