我知道这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);
我无法解释为什么 Double 直接比较是错误的。请为我解释。