我想知道Java的'Double.POSITIVE_INFINITY'是否是无穷大的真实表示,如果不是,则这段代码中的'i':
public class Infinity {
private static int i;
public static void main(String[] args) {
double inf = Double.POSITIVE_INFINITY;
for (i = 0; i < inf; i++) {
}
System.out.println(i);
}
}
Run Code Online (Sandbox Code Playgroud)
曾经被打印过吗?
i < inf一直会true; 即i永远不会达到Double.POSITIVE_INFINITY。
这是因为int一旦达到 2,147,483,647 就会溢出为负数。
请注意,即使i是一种double类型,您仍然无法获得POSITIVE_INFINITY:这是因为在 2 的 53 次方之后,某些单个增量是无操作的。
| 归档时间: |
|
| 查看次数: |
320 次 |
| 最近记录: |