statt nan ein / ausgeben
-
Hallo
an den undefnierten Stellen von sqrt(-1) zum beispiel ( da wo dann nan steht) würde ich gerne alternativ ein / ausgeben.x | sqrt(x)
-1.000e+00 | nan
-5.000e-01 | nanHätte eigentlich gerne folgendes gemacht
if( ergebnis == nan) { cout << "/"<<endl; }
aber war klar dass es so einfach nicht funktioniert
-
@weirdmaiki
Hilft dir das weiter: std::isnan ?
-
@Quiche-Lorraine ja vielen dank
-
@weirdmaiki sagte in statt nan ein / ausgeben:
Hätte eigentlich gerne folgendes gemacht
if( ergebnis == nan)
{
cout << "/"<<endl;
}aber war klar dass es so einfach nicht funktioniert
Genau,
nan
ist ja keine Zahl, sondern ein unmöglicher / unbekannter Wert. Egal mit was dunan
vergleichst, das Ergebnis ist immerfalse
. Das kann man sich zunutze machen, indem man die Variable mit sich selbst vergleicht:if (ergebnis != ergebnis) { /* ist nan */ }
Natürlich ist das
std::isnan
schöner. Es gibt übrigens nicht nur einnan
, sondern mehrere (je nach Typ). Siehe z.B. https://de.wikipedia.org/wiki/NaN