问题遇到的现象和发生背景
偶然在项目中遇到的bug, 查了半天发现是下面这个问题引起的:
问题相关代码,请勿粘贴截图
#include <iostream>
using namespace std;
int main()
{
double b = 0.1;
double a = 3.5;
int c = a/b;
cout << "a: " << a << endl;
cout << "b: " << b << endl;
cout << "a/b: " << c << endl;
double f = 0.7/0.2;
int h = f/b;
cout << "f: " << f << endl;
cout << "b: " << b << endl;
cout << "f/b: " << h << endl;
printf("a: %.10f\n", a);
printf("f: %.10f\n", f);
if(f == a){
cout << "f == a" << endl;
}
return 0;
}
运行结果及报错内容
运行结果如下:
a: 3.5
b: 0.1
a/b: 35
f: 3.5
b: 0.1
f/b: 34
a: 3.5000000000
f: 3.5000000000
我的解答思路和尝试过的方法
为什么3.5/0.1 有时候是35 有时候是 34 呢?