Exception istZahl?
-
hallo
ich weiss nicht wie ich herrausfinden kann ob eine zuweisung durch eine Formeldouble i= irgendeine Formelmal nicht eine Zahl ergibt oder vielleicht out_of_range ist.
jenachdem welche parameter die Formel bekommt kommt manchmal eine zahl raus die ungefähr so aussieht -1#N (irgendwie so, undefiniert halt)
jetzt möchte ich eine Ausnahme werfen, aber wie stelle ich fest dass es sich um keine richtige zahl mehr handelt? mit if anweisungen klappts nicht.
viele grüsse
Xadine
-
Ich weiss nicht ob die Funktion immer so heisst, aber bei MSVC gibts _finite:
double d = ...; if (_finite(d)) { // d ist eine normale Zahl } else { // d ist NAN/+INF/-INF/... }
-
Es gibt auch die Funktion isnan(). Aber diese wird nicht von allen Compilern unterstützt. Glaube der msvc kennt dafür _isnan().
Einfach mal ausprobieren obs funktioniert...
-
jo super _finite funzt,
danke nochmal
-
Tobias W schrieb:
Glaube der msvc kennt dafür _isnan().
Genau, bei MSVC heisst die _isnan. Unterschied !_finite(x) <-> _isnan(x): _isnan(+/-INF) ist false, !_finite(+/-INF) ist true.