- 不可将浮点变量用"==“或”!="与任何数值比较,应设置允许误差
原因: 计算机内部对浮点型数的存储有误差,比如double x=0.0;这时计算机内x值可能是0.0000000001……
解决办法:- 在判断条件中,要尽量不用浮点型变量,而用整型变量,因为计算机对整型变量的存储是精确的。
- 如果条件判断必须要用浮点型变量的话,float型大概是精确到6位,即小数点后6位都是准确的,可取EPSINON=0.000001
if (x == 0.0) //隐含错误的比较
if ((x>=-EPSINON) &&(x<=EPSINON)) //正确的写法