我知道Double
是一個包裝類,它包裝了double
數字。今天,我看到了另一個主要區別:Java:不同的double和double比較
double a = 1.0;
double b = 1.0;
Double c = 1.0;
Double d = 1.0;
System.out.println(a == b); // true
System.out.println(c == d); // false
對我來說很奇怪!
所以,如果我們使用Double
,每一次,我們必須做這樣的事情:
private static final double delta = 0.0001;
System.out.println(Math.abs(c-d) < delta);
我無法解釋爲什麼雙化妝直接比較是錯誤的。請爲我解釋。
謝謝:)
使用'c.equals(d)'而不是'=='。 '=='只檢查引用。 – Baz
@巴茲啊,我明白了。雙是一個類。它會比較對象而不是比較值。這個問題喜歡我們用'String'做的事情。應該使用'equals'而不是== == :) – hqt
是的,正好... – Baz