共計 500 個字符,預計需要花費 2 分鐘才能閱讀完成。
在 Java 中,判斷兩個 double 是否相等不能直接使用 ==
運算符,因為浮點數在計算機中是以二進制形式存儲的,存在精度問題。應該使用 Double.compare()
方法或者自定義一個誤差范圍進行比較。
- 使用
Double.compare()
方法進行比較:
double a = 0.1 + 0.2;
double b = 0.3;
if (Double.compare(a, b) == 0) {System.out.println("a 和 b 相等");
} else {System.out.println("a 和 b 不相等");
}
- 自定義一個誤差范圍進行比較:
double a = 0.1 + 0.2;
double b = 0.3;
double epsilon = 1e-10;
if (Math.abs(a - b) < epsilon) {System.out.println("a 和 b 相等 ");
} else {System.out.println("a 和 b 不相等 ");
}
在這個例子中,我們定義了一個很小的誤差范圍epsilon
,如果兩個 double 的差的絕對值小于這個誤差范圍,則認為它們相等。這樣可以解決精度問題,但需要注意選擇合適的誤差范圍。
丸趣 TV 網 – 提供最優質的資源集合!
正文完