vc++ if判断double变量相等

除了m_taxy以外都是double类型

m_tax171 = m_taxs/1.17; (给m_taxs一个值,然后开始运算)
m_tax172 = m_tax171*0.17;
m_taxr = m_tax171+m_tax172;
UpdateData(false);
if(m_taxr==m_taxs)
{m_taxy="yes";
UpdateData(false);}
else
{m_taxy="no";
UpdateData(false);}
现在我分别显示m_taxs和m_taxr是一样的,但是if判断的结果为no。这是为什么呢?

浮点数在计算机中不能精确的表示,在判断浮点相等时可以根据自己的需要设定一个误差范围,比如,认为相差在0.001以内就是相等。
if(fabs(m_taxr-m_taxs)<0.001)
{
......
}追问

error C2065: 'fabs' : undeclared identifier

追答

头文件#include

追问

我没加fabs也能使?我初学,我不嫁fabs和加了有什么区别吗

追答

fabs意思是取绝对值、

温馨提示:答案为网友推荐,仅供参考
相似回答