Website-Icon Digital Native

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
}
Die mobile Version verlassen