Какое значение установлено для NaN, POSITIVE_INFINITY и некоторых других констант в классе Double? - PullRequest
0 голосов
/ 21 мая 2018

Какое значение установлено для NaN, POSITIVE_INFINITY и некоторых других констант в классе Double?Из исходного кода я вижу, что они настроены на себя, но как это работает?

public final class Double extends Number implements Comparable<Double> {
    public static final double POSITIVE_INFINITY = POSITIVE_INFINITY;
    public static final double NEGATIVE_INFINITY = NEGATIVE_INFINITY;
    public static final double NaN = NaN;
    public static final double MAX_VALUE = MAX_VALUE;
    public static final double MIN_VALUE = MIN_VALUE;

    ...
}

Спасибо.

1 Ответ

0 голосов
/ 21 мая 2018

Как минимум в OpenJDK 8 , OpenJDK 9 и OpenJDK 10 , они находятся в исходном коде:

public static final double POSITIVE_INFINITY = 1.0 / 0.0;
public static final double NEGATIVE_INFINITY = -1.0 / 0.0;
public static final double NaN = 0.0d / 0.0;  // (*)
public static final double MAX_VALUE = 0x1.fffffffffffffP+1023;
public static final double MIN_VALUE = 0x0.0000000000001P-1022;

(*) На случай, если вам интересно "d" ...

...