理解 float 和 double类型的变量的精度与存储方式,先参考下面文章
http://blog.csdn.net/xiongchuquan/article/details/37767569
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
const double c1 = 1e-6; //若2个变量是float类型,则一般参考比较变量为c1 少数部分float类型的小数精度能达到1e-7
const double c2 = 1e-15; //若2个变量为double类型 则一般参考比较变量为c2 少数部分double类型的小数精度能达到1e-16
double a1 = 3.123456789012345;
double a2 = 3.123456789012346;
if ( fabs(a1 - a2) < c2)
cout << "a = b is true." <<endl;
else
cout << "a = b is false." <<endl;
return 0;
}