==运算符如果比较具有相同值的Double类型,则返回false

这个问题在这里已经有了答案:

  • “.equals”和“==”有什么区别? [复制] 11个回答

  • 您正在比较引用而不是值。 要么做:

    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.在你的代码中,将创建两个对象,引用value1value2指向不同的对象。如果使用value1==value2 ,它将返回false 。如果引用指向相同的对象,它将返回true

    Double value1 = 6.2;
    Double value2 = 6.2;   
    

    2.如果使用value1.equals(value2)它会比较返回true的对象的内容

    链接地址: http://www.djcxy.com/p/58637.html

    上一篇: == operator return false if compare Double type with the same value

    下一篇: How to Compare a long value is equal to Long value