[gelöst] NaN gesucht
-
In math.h gibt es ein Makro
NAN
. Ich weiß leider nicht, ob das C99-spezifisch ist.
-
NAN ist eine GNU-Extension.
Was hälst du von #define NOTANUMBER 1.0/0.0 oder so ähnlich?
-
1.0/0.0 wäre inf, nan wäre 0.0/0.0 (z.B.)
-
hui da fällt mir gerade ein wenn du nen zeiger auf ein double zurück gibst geht das schön und sauber mit ner 0...
also
double *myFn(double *in){ if(ok) return in; return NULL;//aka NaN }
lg lolo
-
Edit: Eieiei... Hab mich im Forum geirrt
-
@freakycpp
kannst du den c++ scheiss woanders posten. die fragen werden nicht umsonst in einem c-unterforum gestellt
-
Ich hatte es schon editiert, was willst du? Man hat nur gesehen das es in C++ besser lösbar ist...
-
Tim schrieb:
...nan wäre 0.0/0.0 (z.B.)
brauchst aber 'nen doofen compiler, der nicht merkt, dass du durch 0 teilen willst. vielleicht so:
// nur fuer little endian unsigned char nan[] = {0, 0, 0, 0, 0, 0, 0xf8, 0x7f}; double f = *(double*)nan; printf ("%f\n", f);
-
nwp2 schrieb:
NAN ist eine GNU-Extension.
Nein, NAN steht im C99-Standard. Ich hab nur den C89-Standard nicht, den kriegt man auch nicht mehr (oder? weiß jemand wo? Draft reicht), deshalb hab ich nachgefragt.
-
Bashar schrieb:
nwp2 schrieb:
NAN ist eine GNU-Extension.
Nein, NAN steht im C99-Standard. Ich hab nur den C89-Standard nicht, den kriegt man auch nicht mehr (oder? weiß jemand wo? Draft reicht), deshalb hab ich nachgefragt.
http://www.chemie.fu-berlin.de/chemnet/use/info/libc/libc_14.html
[...]Macro: double NAN
An expression representing a value which is "not a number". This macro is a GNU extension [...]Ich habe einfach von da abgeschrieben. Vielleicht haben es auch die Chemiker der FU-Berlin verpeilt.
-
Super,
0.0/0 klappt. GCC beschwert sich allerdings (aber nur warnung). Über 0.0/0.0 beschwert er sich aber nicht
unsigned char nan[] = {0, 0, 0, 0, 0, 0, 0xf8, 0x7f};
double f = (double)nan;auch!
Vielen Dank!
-
nwp2 schrieb:
Ich habe einfach von da abgeschrieben. Vielleicht haben es auch die Chemiker der FU-Berlin verpeilt.
Warum nicht einfach eine Textsuche durch den Standard? Hat schon viele Klarheiten beseitigt.
NAN
gibt's wirklich. Was nicht heissen muss, dass die Chemiker gelogen haben. Vielleicht hatten sie ja damals recht.