我刚刚遇到了原始类型包装类中的常量,如Double.POSITIVE_INFINITY
和Double.NEGATIVE_INFINITY
.在API中,它将第一个定义为:
持有double类型的正无穷大的常量.它等于Double.longBitsToDouble(0x7ff0000000000000L)返回的值.
其他人也有这些相同的定义.
我遇到的问题是了解这些常数究竟是什么.它们实际上不能或代表正/负无穷大,因为系统本质上是有限的.它是Java创建者认为会定义无限概念的一些任意位设置吗?或者这些确实具有某种特殊价值?如果它只是一个被解释为a的任意字符串double
,那么是否有一些正常的数字,当被解释为double
将返回POSITIVE_INFINITY
而不是实际预期的任何值?
请原谅我,如果Double.longBitsToDouble(0x7ff0000000000000L)
API 的部分答案是明显的.说实话,这个描述对我来说非常神秘,我不会假装理解十六进制值实际上意味着什么或代表什么.
以下问题表明Double的最小值是-Double.MAX_VALUE
.Float(即-Float.MAX_VALUE
)也是如此吗?