問題分析:
計算機判斷兩個數相等,將判斷所有的二進制位是否相等,當所有的位都相等時,兩個數才相等,絕對的相等。這種相等是我們常見的 == ;
解決方法:
程序中有時沒有絕對相等的概念,在我們的程序中:對小數來說,保留小數點後幾位就足夠了,因此兩個小數的差在可接受的精度範圍內就可以被認爲是相等的。所以double數判斷是否相等,使用 == 是不嚴謹的;對於銀行金融行業java建議使用bigdecimal
#qt5寫法
public bool equal(double a, double b) {
if (fab(a- b)< 0.000001)
return true;
else
return false;
}