gpt4 book ai didi

java - 对 float 或 double 值执行重复加法会产生意外结果

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

我在我的代码中发现了一个 but,经过一些搜索我意识到我正在执行的一些 float 操作产生了错误的结果。所以我输入了以下循环:

 float f = 0f;
for(int i =0; i<15; i++){
f+= 10.1f;
System.out.println(f);
}

但在结果中我得到了意想不到的额外十进制值:

10.1
20.2
30.300001
40.4
50.5
60.6
70.7
80.799995
90.899994
100.99999
111.09999
121.19999
131.29999
141.4
151.5

这是怎么回事,我该如何预防?

最佳答案

你无法“阻止”它。相反,您需要做的是期待它并进行补偿。

参见:什么 Every Computer Scientist Should Know About Floating-Point Arithmetic

关于java - 对 float 或 double 值执行重复加法会产生意外结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20406141/

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