我的类中有双精度类型,并且必须重写 equals()/hashCode()。所以我需要比较双精度值。
哪个是正确的方法?
版本1:
boolean isEqual(double a, double b){
return Double.doubleToLongBits(a) == Double.doubleToLongBits(b);}
版本2:
boolean isEqual(double a, double b){
final double THRESHOLD = .0001;
return Math.abs(a - b) < THRESHOLD;
}
double或者我应该完全避免原始并使用它的包装类型Double?这样我就可以使用Objects.equals(a,b), ifa和bare Double 。
三国纷争
DIEA
相关分类