c++ - 在 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。您能否解释一下为什么会发生这种情况以及我该如何解决?
解决方案
推荐阅读
- alexa - Alexa:如何知道大响应在哪里被打断?
- highcharts - 如何沿着森伯斯特图表中的各个部分弯曲每个数据标签?
- javascript - 尝试对 GraphQL 数据进行 .map() 时,React Native 'undefined is not an object'
- laravel - 另一个“不能保存多个复选框”和“必须是数组类型,给定字符串”
- java - 使用java流,将两个具有相同键但不同值的映射合并到一个元组?
- android - 如何从我当前的位置查找数据库中的位置?
- latex - 如何以快捷方式将 Scilab 控制台中的矩阵转换为乳胶?
- android - 使用 handler.postDelayed 暂停程序后恢复
- html - 为什么父div和孩子的身高不一样?
- css - css - 代号 1 中不支持的 CSS 属性透明度