这可能是一个非常简单的问题,但我对此很困惑。
Double.MAX_VALUE
给出的1.7976931348623157E308
实际上是浮点字面量,因此是double
。
但是,Double.POSITIVE_INFINITY
给出无穷大。类型Double
的 infinity 如何?它看起来不是十进制数字,甚至不是数字。
请解释。
答案 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