Dlaczego NaN nie jest równe NaN? [duplikować
To pytanie ma już odpowiedź tutaj:
Jakie jest uzasadnienie dla wszystkich porównań zwracających wartość false dla wartości NaN IEEE754? 13 odpowiedziOdpowiedni standard IEEE definiuje stałą liczbową NaN (nie liczbę) i nakazuje, aby NaN porównywał się jako nie równy sobie. Dlaczego
Wszystkie języki, które znam, implementują tę zasadę. Ale często powoduje poważne problemy, na przykład nieoczekiwane zachowanie, gdy NaN jest przechowywany w kontenerze, gdy NaN znajduje się w sortowanych danych itp. Nie wspominając, że znaczna większość programistów oczekuje, że jakikolwiek obiekt będzie sobie równy ( zanim dowiedzą się o NaN), więc ich zaskoczenie dodaje błędów i zamieszania.
tandardy @IEEE są dobrze przemyślane, więc jestem pewien, że istnieje dobry powód, dla którego porównywanie NaN jako równe sobie byłoby złe. Po prostu nie mogę zrozumieć, co to jest.