无论是float还是double类型的变量,都有精度限制。所以一定要避免将浮点变量用"=="或"!="与数字比较,应该设法转化成为">="或"<="形式。
不建议使用的例子:
if(0.0 == x)
if(0.0 != x)
强烈推荐的例子:
//EPSINON是允许的误差(精度)
if(x >= -EPSINON) && (x <= EPSINON)
if(x >= -EPSINON) || (x <= EPSINON)
无论是float还是double类型的变量,都有精度限制。所以一定要避免将浮点变量用"=="或"!="与数字比较,应该设法转化成为">="或"<="形式。
不建议使用的例子:
if(0.0 == x)
if(0.0 != x)
强烈推荐的例子:
//EPSINON是允许的误差(精度)
if(x >= -EPSINON) && (x <= EPSINON)
if(x >= -EPSINON) || (x <= EPSINON)