因为浮点数在计算机中是二进制存储的,所以用 ==,>,<不一定能判断
可以直接比较的例子
例如 : double a = 0.1
double b = 0.1;
则a==b成立
而 : a = 0.1 + 0.2
b = 0.3;
就不能直接==比较了,要有个精度误差
#define EPS 0.00000001
if(fabs(a - b) < EPS){} //则认为相等 ==
if(a - b > EPS) //则认为>
if(b - a > EPS) //则认为<
另外提醒下swith case 语句也不能用浮点数(也不能用string),想来也是这个原因了
c++11引入了新方法去使用string,看下文
c++ switch/case 使用 string的方法



