Использование метода Double.isNaN() для проверки
На этом этапе мы научимся проверять, является ли число с плавающей запятой "Не числом" (NaN) в Java с помощью метода Double.isNaN()
.
Числа с плавающей запятой в компьютерах иногда могут иметь специальное значение, называемое NaN. Это происходит, когда результат вычисления не определен или не может быть представлен в виде обычного числа. Например, деление нуля на ноль или извлечение квадратного корня из отрицательного числа могут привести к значению NaN.
Важно уметь обнаруживать значения NaN в своих программах, так как они ведут себя иначе, чем обычные числа. Например, сравнение значения NaN с любым другим числом (даже с другим NaN) с использованием стандартных операторов сравнения (==
, <
, >
) всегда даст false
.
Java предоставляет специальный метод для проверки на NaN: Double.isNaN()
. Этот метод принимает значение типа double
в качестве входных данных и возвращает true
, если значение является NaN, и false
в противном случае.
Создадим простую Java-программу, чтобы показать, как использовать Double.isNaN()
.
-
Откройте файл HelloJava.java
в редакторе WebIDE.
-
Замените существующий код следующим:
public class CheckNaN {
public static void main(String[] args) {
double result1 = 0.0 / 0.0; // This will result in NaN
double result2 = 10.0 / 2.0; // This is a regular number
System.out.println("Is result1 NaN? " + Double.isNaN(result1));
System.out.println("Is result2 NaN? " + Double.isNaN(result2));
}
}
В этом коде:
- Мы объявляем две переменные типа
double
, result1
и result2
.
- Переменной
result1
присваивается результат выражения 0.0 / 0.0
, которое представляет собой неопределенную форму и даст значение NaN.
- Переменной
result2
присваивается результат выражения 10.0 / 2.0
, которое представляет собой обычное число (5.0).
- Затем мы используем метод
Double.isNaN()
для проверки, являются ли result1
и result2
значениями NaN, и выводим результаты.
-
Сохраните файл (Ctrl+S или Cmd+S).
-
Теперь нам нужно скомпилировать эту новую программу. Поскольку мы изменили имя класса на CheckNaN
, нам нужно скомпилировать файл CheckNaN.java
. Откройте терминал и выполните следующую команду:
javac CheckNaN.java
Если компиляция прошла успешно, вы не должны увидеть никакого вывода.
-
Наконец, запустите скомпилированную программу:
java CheckNaN
Вы должны увидеть вывод, похожий на следующий:
Is result1 NaN? true
Is result2 NaN? false
Этот вывод подтверждает, что метод Double.isNaN()
правильно определил result1
как значение NaN и result2
как обычное число.
Использование метода Double.isNaN()
является правильным и надежным способом проверки на значения NaN в Java. Не рекомендуется полагаться на прямое сравнение (== Double.NaN
), так как, как упоминалось ранее, выражение NaN == NaN
возвращает false
.