一:判断两个double是否相等
- 浮点数在计算机中并不能精确的表示,所以在判断两个double类型的数时需要其他的手段,而不是直接用==判断。
- float&#xff0c;double分别遵循R32-24,R64-53的标准。所以float的精度误差在1e-6&#xff1b;double精度误差在1e-15&#xff0c;所以要判断一个单精度浮点数&#xff1a;则是if( abs(f) <&#61; 1e-6)&#xff1b;要判断一个双精度浮点数&#xff1a;则是if( abs(f) <&#61; 1e-15 )&#xff1b;若小于&#xff0c;为0&#xff0c;大于&#xff0c;不为0 。
- 自己最好的是选择一个合适的精度&#xff0c;来进行判断。
double b &#61; 0.0;double c &#61; 0.0;if(fabs(a-b) < 1e-6){qDebug()<<"a&#61;b";}
二&#xff1a;判断一个double是否为0
if(fabs(b) < 1e-15){qDebug()<<"b&#61;0";}
上一篇&#xff1a;Qt开发之路46—Qt Creator运行的时候报exited with code -1073741515错误
下一篇&#xff1a;Qt开发之路48—类的静态成员&#xff08;static&#xff09;