/
Вопросы и ответы
/
Java
/

Как правильно сравнивать double в java

Как правильно сравнивать double в java

4 года назад

Человек-Молекула

Ответы

0

При сравнении значений типа double в Java следует быть осторожным из-за того, что внутреннее представление чисел с плавающей точкой может быть не точным. Например, значения, которые должны быть равными, могут отличаться на очень малое значение.

Вместо использования операторов == или != для сравнения значений типа double рекомендуется использовать методы класса Double, такие как equals() или compare(), которые предоставляют более точный способ сравнения чисел с плавающей точкой.

Метод equals():

double d1 = 0.1 + 0.2;
double d2 = 0.3;
if (Double.valueOf(d1).equals(Double.valueOf(d2))) {
    System.out.println("d1 и d2 равны");
}

В этом примере мы сравниваем два значения типа double, которые должны быть равными. Для сравнения используем метод equals(), который возвращает true, если значения равны, и false в противном случае.


Для сравнения двух значений типа double по их относительной близости друг к другу используйте метод compare():

double d1 = 0.1 + 0.2;
double d2 = 0.3;
if (Double.compare(d1, d2) == 0) {
    System.out.println("d1 и d2 близки");
}

Этот метод возвращает 0, если значения равны, 1, если первое значение больше второго, и -1, если первое значение меньше второго. Мы проверяем, равны ли значения, используя == 0

2 года назад

Иван Полежаев