Какой будет результат выполнения кода:

public class Main {
    public static void main(String[] args) {
        double d = Math.sqrt(-1);
        System.out.println(Double.NaN == d);
        d = d / 0;
        System.out.println(Double.isNaN(d));
    }
}
Explanation

При выполнении операций, результат которых математически не определён (корень из отрицательного числа, 0.0/0.0 и т.д.) возвращается специальное значение NaN (Not a Number, не число). В классах-оболочках дробных чисел объявлены соответствующие константы: Float.NaN и Double.NaN.

Особенностью значения NaN является то, что при любых арифметических операциях с ним также получается NaN, а при попытке сравнить его с чем-нибудь с помощью оператора == всегда получается false.

Если необходимо проверить, является ли значение NaN, то нужно использовать методы Float.isNaN(float) или Double.isNaN(double).


Следи за CodeGalaxy

Мобильное приложение Beta

Get it on Google Play
Обратная Связь
Продолжайте изучать
тесты по Java
Cosmo
Зарегистрируйся сейчас
или Подпишись на будущие тесты