相关疑难解决方法(0)

Java中的INFINITY常量是什么?

我刚刚遇到了原始类型包装类中的常量,如Double.POSITIVE_INFINITYDouble.NEGATIVE_INFINITY.在API中,它将第一个定义为:

持有double类型的正无穷大的常量.它等于Double.longBitsToDouble(0x7ff0000000000000L)返回的值.

其他人也有这些相同的定义.

我遇到的问题是了解这些常数究竟是什么.它们实际上不能代表正/负无穷大,因为系统本质上是有限的.它是Java创建者认为会定义无限概念的一些任意位设置吗?或者这些确实具有某种特殊价值?如果它只是一个解释为a的任意字符串double,那么是否有一些正常的数字,当被解释为double将返回POSITIVE_INFINITY而不是实际预期的任何值?

请原谅我,如果Double.longBitsToDouble(0x7ff0000000000000L)API 的部分答案是明显的.说实话,这个描述对我来说非常神秘,我不会假装理解十六进制值实际上意味着什么或代表什么.

java bits constants infinity

33
推荐指数
3
解决办法
4万
查看次数

Java中浮点数和双精度的包含范围是多少?

Java中浮点数和双精度的包含范围是多少?

为什么不建议在精度至关重要的地方使用float或double?

java floating-point double types range

23
推荐指数
4
解决办法
11万
查看次数

在for循环中使用Double.POSITIVE_INFINITY(Java)

以下代码将如何表现,尤其是当双计数器达到其极限时((2-2 ^ -52)·2 ^ 1023)?

for (double i = 0; i < Double.POSITIVE_INFINITY; i++){
    //do something
}
Run Code Online (Sandbox Code Playgroud)

此代码是否会按预期运行(永远循环)或在某些时候失败,为什么?

谢谢.

java for-loop infinity

8
推荐指数
2
解决办法
548
查看次数

标签 统计

java ×3

infinity ×2

bits ×1

constants ×1

double ×1

floating-point ×1

for-loop ×1

range ×1

types ×1