Die überprüfung, ob ein double (oder float) ist NaN in C++

Gibt es eine isnan () - Funktion?

PS.: Ich bin in MinGW (wenn das einen Unterschied macht).

Ich hatte das gelöst, indem Sie isnan() von <math.h>, die nicht vorhanden ist <cmath>, die ich war #includeing auf den ersten.

Ich nicht rein, Sie können es tun portabel. Wer sagt, dass C++ erfordert IEEE754?
Siehe auch: wie erstelle ich eine portable isnan/isinf-Funktion
Nur eine Anmerkung, 1 Unze der Verhinderung ist besser als 1 Pfund Heilung. In anderen Worten, Verhinderung 0.f/0.f jemals ausgeführt wird ist weit besser, als nachträglich die Prüfung für nan's in deinem code. nan ist kann furchtbar destruktiv, um Ihr Programm, wenn erlaubt, sich zu vermehren, die es einführen können schwer zu findende Fehler. Dies ist, weil nan ist giftig, (5*nan=nan), nan nicht gleich alles (nan != nan), nan nicht größer ist als alles (nan !> 0), nan ist nicht weniger als alles (nan !< 0).
Das ist ein feature, bei dem zentrale Fehler überprüfen. Ebenso wie exceptions vs return values.
Warum nicht <cmath> isnan()? Es ist in std::

InformationsquelleAutor hasen | 2009-02-20

Schreibe einen Kommentar