Not a number (NAN)
-
Hallo,
gibt es eine schöne Möglichkeit herauszufinden ob ein double 'nan' ist ?
Ich verwende folgende Variante, finde sie aber umwegig:
//Umwandeln der Zahl in einen String sprintf(test,"%20.3g",meineVariable); //wenn "nan" im String steht, dann reagiere darauf if (strstr(test,"nan")!=0) { printf("\nError ! NotANumber !!!\n\a");}
jesus
-
Melde deinen Code bei http://www.thedailywtf.com
-
if (!(meineVariable==meineVariable)) { printf("\nError ! NotANumber !!!\n\a");}
-
danke ... dass es so einfach geht kann ja keiner ahnen ...
Danke jesus
-
MFK schrieb:
if (!(meineVariable==meineVariable))
Zu sowas gehört mE ein Kommentar. Schöner (aber C99) ist 'if (isnan(var))' aus math.h.
-
Daniel E. schrieb:
Zu sowas gehört mE ein Kommentar.
Hast Recht. Also bitte dranschreiben: Bei NaN schlägt jeder Vergleich mit == fehl, auch mit NaN. Das heißt übrigens AFAIK nicht, dass NaN != NaN wahr ist.
Schöner (aber C99) ist 'if (isnan(var))' aus math.h.
Ich brauche dringend mal den "neuen" Standard.
-
http://www.dinkumware.com/manuals/reader.aspx?lib=c99
neue referenzden standard hab ich mal irgendwo im netz gesehen, aber die seite ist zur zeit down.
-
c.rackwitz schrieb:
den standard hab ich mal irgendwo im netz gesehen, aber die seite ist zur zeit down.
Äh, der kostet aber Geld. Es gibt eine vorläufige Version (google: C99 N843), die ziemlich nah dran ist.