gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:41:37 25 4
gpt4 key购买 nike

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

for (double i = 0; i < Double.POSITIVE_INFINITY; i++){
//do something
}

这段代码会按预期运行(永远循环)还是会在某个时候失败,为什么?

谢谢。

最佳答案

在某些时候,i++ 将不再有任何效果,因为对于非常大的 i 值,连续的 double 值相距很远。

因此这是一个无限循环。

要证明 doublei == i + 1 试试这个:

for (double i = 1;; i *= 2){
if (i == i + 1) {
System.out.println(i);
break;
}
}

打印

9.007199254740992E15

关于java - 在 for 循环中使用 Double.POSITIVE_INFINITY (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33529676/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com