gpt4 book ai didi

Julia : float 总和是错误的?

转载 作者:行者123 更新时间:2023-12-03 20:02:17 24 4
gpt4 key购买 nike

我如何确保通过添加 0.2在每次迭代中我都能得到正确的结果?

some = 0.0
for i in 1:10
some += 0.2
println(some)
end
上面的代码给了我
0.2
0.4
0.6000000000000001
0.8
1.0
1.2
1.4
1.5999999999999999
1.7999999999999998
1.9999999999999998

最佳答案

浮点数只是近似正确,如果加起来为无穷大,误差将变得无穷大,但您仍然可以用它非常精确地计算。如果您需要评估结果并查看它是否正确,您可以使用 isapprox(a,b)a ≈ b .
IE。

some = 0.
for i in 1:1000000
some += 0.2
end
isapprox(some, 1000000 * 0.2)
# true
否则,您可以在 for 循环中添加整数,然后除以 10。
some = 0.
for i in 1:10
some += 2.
println(some/10.)
end
#0.2
#0.4
#0.6
#0.8
#1.0
#1.2
#1.4
#1.6
#1.8
#2.0
有关使用浮点数计数的更多信息:
https://en.wikipedia.org/wiki/Floating-point_arithmetic

关于 Julia : float 总和是错误的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65613695/

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