C# – Überprüfen auf NaN
Wie testet man korrekt, ob ein Double oder Single NaN ist? In meinem jugendlichen Leichtsinn nutzt ich natürlich zunächst
If ( 0/zero == double.NaN ) [...] // Ist IMMER false If ( 0/zero != double.NaN ) [...] // Ist IMMER true
und wunderte mich dann über seltsame Ergebnisse. Da hat sich mal wieder irgendwann irgendwer gedacht: Mensch, jetzt mache ich mal meinen Matheprofessor stolz, denn NaN ist ja im eigentlichen Sinne keine Zahl mehr. Korrekt, aber für den Programmierer nervig, da hätte man doch ruhig mal ein bisschen Benutzerfreundlichkeit einbauen können.
So geht es richtig, wie man hier nachlesen kann:
if (Double.IsNaN(0/zero)) { //Code }