int main()
{
double a = 112312313.1314501223;
double b = 112312313.1314501222;
const double eps = 1e-15;//1的负6次方
double dNum1 = 1.1313131333333333, dNum2 = 1.1313131333333332;
//cout << "输入dNum1和dNum2的值:";
//cin >> dNum1 >> dNum2;
if (dNum1 == dNum2)
cout << "dNum1 == dNum2" << endl;
if(dNum1 < dNum2)
cout << "dNum1 < dNum2" << endl;
if (dNum1 > dNum2)
cout << "dNum1 > dNum2" << endl;
cout << "------------------------------------------" << endl;
if (dNum1 + eps < dNum2)//way1. 判断a是否小于b
cout << "way1. <" << endl;
if (dNum1 < dNum2 - eps)//way2. 判断a是否小于b
cout << "way2. <" << endl;
if (dNum1 > dNum2 - eps)//way3. 判断a是否小于b
cout << "way3. >" << endl;
if (fabs(dNum1 - dNum2) < eps)//判断是否相等
cout << "==" << endl;
system("pause");
return 0;
}
测试结果
另外发现const double eps = 1e-15;最高只能到15,16就不好使了,目前不知道为什么,八成和大小有关。