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

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
Зареєструйся Зараз
або Підпишись на майбутні тести