gpt4 book ai didi

java - 在 Java 中添加 1/3 结果为 1.0,但它不应该

转载 作者:行者123 更新时间:2023-11-30 06:25:25 25 4
gpt4 key购买 nike

注意:问题仍未得到彻底解答!本题不涉及浮点部分的截断问题!!!

在 Java 中我有这个简单的代码:

double sum = 0.0;
for(int i = 1; i <= n; i++){
sum += 1.0/n
}
System.out.println("Sum should be: 1");
System.out.println("The result is: " + sum);

其中 n 可以是任何整数。对于像 7,9 这样的数字,sum 的期望值是在 sum 的最后一位数字上有差异,结果是 0.999999999998 之类的,但是当我使用 3 时的输出是 1.0

如果将 1/3 加 3 次,您会期望数字接近 1,但我得到的恰好是 1.0。

为什么?

最佳答案

这是因为除法是以整数进行的。

1/n 对于 n > 1,总是给出 0。

因此,您总是会得到 sum = 0 + 1/1 + 0 + 0...

尝试使用 1.0/n

关于java - 在 Java 中添加 1/3 结果为 1.0,但它不应该,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15575669/

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