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(fal

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/09 04:45:52

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(fal
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.这是为什么呢?

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