gpt4 book ai didi

c++ - 无限循环

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

int i = 0;
double n = 1.24;
for (; int(n) != n; i++) {
n *= 10;
}

为什么会进入死循环?不是应该在循环两次后停止吗?

最佳答案

1.24 不能完全表示为 double。如果您检查 n 的初始值,您会发现它是 1.239999999999999991118215802998747...

至于为什么循环不停,一旦n超过最大double的值,就自动转为+Infinity,这是一个特殊的浮点值。一旦达到该点,n 将停止更改并且 int(n) != n 永远无法满足。

关于c++ - 无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13914601/

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