比较两个double数是否相等(C++/Java适用)

问题分析:

计算机判断两个数相等,将判断所有的二进制位是否相等,当所有的位都相等时,两个数才相等,绝对的相等。这种相等是我们常见的 == ;

解决方法:

程序中有时没有绝对相等的概念,在我们的程序中:对小数来说,保留小数点后几位就足够了,因此两个小数的差在可接受的精度范围内就可以被认为是相等的。所以double数判断是否相等,使用 == 是不严谨的;对于银行金融行业java建议使用bigdecimal

#qt5写法
public bool equal(double a, double b) {
        if (fab(a- b)< 0.000001)
            return true;
        else
            return false;
}

版权声明:本文为qq_38025219原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。