首页 > 解决方案 > 在 c++ 中使用 double 的 for 循环中出现了一个奇怪的问题

问题描述

我一直在编写一些代码并编写这个 for 循环:

for(double i = -1; i <= 1; i += 0.1) {
      cout << i << "\n";
}

奇怪的是,当我运行上面的代码时,我得到以下值:

-1
-0.9
-0.8
-0.7
-0.6
-0.5
-0.4
-0.3
-0.2
-0.1
-1.38778e-16
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1

在中间,我得到的不是 0,而是这个数字:-1.38778e-16。您能否解释一下为什么会发生这种情况以及我该如何解决?

标签: c++for-loopdouble

解决方案


推荐阅读