Почему Double.NaN == Double.NaN возвращает false?

Я как раз изучал вопросы OCPJP и обнаружил этот странный код:

public static void main(String a[]) {
    System.out.println(Double.NaN==Double.NaN);
    System.out.println(Double.NaN!=Double.NaN);
}

Когда я запустил код, я получил:

false
true

Как результат ложный , когда мы сравниваем две вещи, которые выглядят одинаково друг на друга? Что означает NaN ?

154
задан Pops 13 January 2012 в 14:24
поделиться