首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在for循环(Java)中使用Double.POSITIVE_INFINITY

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

Stack Overflow用户
提问于 2015-11-04 18:46:08
回答 1查看 947关注 0票数 8

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

代码语言:javascript
复制
for (double i = 0; i < Double.POSITIVE_INFINITY; i++){
    //do something
}

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

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2015-11-04 18:53:30

在某一时刻,i++将不再产生任何影响,因为对于非常大的i值,连续的double值相距很远。

因此,它是一个无限循环。

为了证明有double值,i == i + 1尝试如下:

代码语言:javascript
复制
for (double i = 1;; i *= 2){
    if (i == i + 1) {
        System.out.println(i); 
        break;
    }
}

印出来

代码语言:javascript
复制
9.007199254740992E15
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33529676

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档