首先,让我们先来看一段代码:
#include <iostream>
#include <iomanip>
int main()
{
using namespace std;
cout<<setprecision(17);
float num1 = 1.1;
double num2 = 1.1;
if (num1 == num2)
cout << "yes"<<endl;
else
cout << "no"<<endl;
cout<<num1<<";"<<num2<<endl;
return 0;
}
代码很简单,比较下num1和num2是否相等,那么是否相等呢?看字面值是一样的,理论上确实应该相等,但实际上却不是。为什么?这里涉及到了一个浮点型数据的精度和表示问题。
好,我们就来谈谈这两个问题。
1. 精度(Pr