==运算符如果比较具有相同值的Double类型,则返回false
这个问题在这里已经有了答案:
您正在比较引用而不是值。 要么做:
value1.equals(value2);
或者:
value1.doubleValue() == value2.doubleValue();
在这里了解更多关于Autoboxing的内容,了解它为什么有时会起作用(用整数)以及为什么有时它不起作用。 请注意, 所有整数都是2:6 = 2 + 4的幂的总和,而小数点不是:6.2 = 4 + 2 + 1/8 + ...
这两个变量都通过装箱转换为Double
对象进行初始化。 当在对象上使用==
时,如果它们是相同的对象,则比较引用,并且不比较内容。
要比较内容,可以使用equals
方法,也可以检查调用compareTo
的结果是否等于0
。 或者,您可以将这两个变量声明为double
,然后==
将直接比较这些值。
==
供参考比较
.equals
意思是内容比较
1.在你的代码中,将创建两个对象,引用value1
和value2
指向不同的对象。如果使用value1==value2
,它将返回false
。如果引用指向相同的对象,它将返回true
Double value1 = 6.2;
Double value2 = 6.2;
2.如果使用value1.equals(value2)
它会比较返回true
的对象的内容
上一篇: == operator return false if compare Double type with the same value