==
проверяет, являются ли объекты одним и тем же объектом, но не имеют ли они одинаковое значение. В вашем примере dd
и ee
являются различными объектами, даже если они имеют одинаковое значение. Поэтому, если вы хотите сравнить их значения, вам нужно использовать метод equals .
. Вот небольшой тест, который поможет вам разобраться с этим:
package stackoverflow;
import org.junit.jupiter.api.Test;
public class QuickTest {
@Test
public void test() throws Exception {
Double number1 = 100000000000000.032;
Double number2 = 100000000000000.032;
System.out.println("Do they point to the same object? " + (number1 == number2));
System.out.println("Are they equal, do they have the same value? " + (number1.equals(number2)));
Double number3 = 100000000000000.032;
Double number4 = number3;
System.out.println("Do they point to the same object? " + (number3 == number4));
System.out.println("Are they equal, do they have the same value? " + (number3.equals(number4)));
}
}
Это распечатывает следующее:
Do they point to the same object? false
Are they equal, do they have the same value? true
Do they point to the same object? true
Are they equal, do they have the same value? true