gpt4 book ai didi

java - 使用 double in 循环。舍入可能出现问题

转载 作者:行者123 更新时间:2023-12-01 07:14:51 26 4
gpt4 key购买 nike

我有一个关于今天看到的 FOR 循环的小问题。它看起来像这样:

for (double i = 0.0; i < 1.0; i += 0.1) {  
for (double j = i; j < 1.0; j += 0.1) {
double k = i + j;
if ((k % 1) == 0) {
System.out.println(i + " + " + j + " = " + k);
}
}
}

它应该输出 0 到 1 之间的两个数字之和(增加 0.1),并且等于一个整数。然而,由于某种原因,它没有显示 0.1 + 0.9 = 1.0 总和。我的猜测是,这可能是因为 double 格式的数字表示不正确(即 0.3 + 0.1 不是 0.4,而是类似 0,399999999 的东西)。

任何人都可以确认这确实是问题所在并建议如何纠正它吗?非常感谢任何帮助!

最佳答案

为什么不使用ints - 从0开始直到10,步长为1 ?然后if (k % 10) == 0

关于java - 使用 double in 循环。舍入可能出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5476948/

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