NaN
-
hallo leute,
wenn man beispielsweise mit der Klasse "Math" rechnet,
bekommt man als Ergebnis gelegentlich "NaN" zurück, was
bedeutet die Zahl ist nicht definiert. (Not-a-Number)Beispielsweise liefert:
double sqrt = Math.sqrt(-1) ;
und
System.out.println(sqrt) ;
die Ausgabe: "NaN"
Meine Frage ist nun, wie ich sauber (!) abfragen kann, ob eine
Zahl "NaN" ist.if (sqrt == NaN) {...}
// funktioniert logischerweise nichtif((sqrt + "").equals("NaN")) {...}
// funktioniert, ist doch aber irgendwie unschönWie macht man es richtig?
------------------------------------------------------------------
Hoffentlich ziehe ich mir durch diese Frage nicht ein *rtfm* zu.
Deswegen vorbeugend - ich habe gesucht, aber nichts gefunden.
Seid also nicht zu hart in Eueren Anmerkungen.[ Dieser Beitrag wurde am 22.05.2003 um 09:30 Uhr von own editiert. ]
-
also entweder bist du blöd oder ich bin blöd, aber bei Math.tan(-1.5) kommt bei mir kein NaN raus ?!
Btw. Double.NaN is die Konstante
-
@crass: Deine Reaktion halte ich für etwas übertrieben gelinde gesagt - aber na ja ...
@own: Die Wrapper-Klassen besitzen isNaN-Methoden um dies abzufragen.
-
@CengizS
Vielen Dank!
Ich habe es ausprobiert und es klappt natürlich wunderbar.@crass
Vielen Dank auch Dir!
Zwar war Deine Antwort bei weitem nicht so hilfreich, wie die von CengizS, aber wenigstens hast Du mich auf einen (für mich) typischen "Copy-and-Paste"-Fehler aufmerksam gemacht. Ich habe ihn nun behoben.Ich möchte die Gelegenheit nutzen, mich nochmals ausdrücklich dafür zu entschuldigen, dass ich durch diesen schwerwiegenden Fehler meinen Beitrag derart verunstaltet habe, dass Du dermaßen außer Dir warst, dass Du (absolut verständlicherweise) beleidigend werden mußtest!
Ich hoffe, Du kannst mir noch einmal verzeihen, dass ich Dir den Tag so sehr vermiest habe!
Natürlich ist es Dir noch nie passiert, Dich zu vertippen oder sonst irgendwie einen Fehler in irgendeinem - wie auch immer geartetes - Dokument zu bringen. Deswegen finde ich das, von Dir an den Tag gelegte, Verhalten als vollkommen angebracht. Weiter so!
<java>
...
double sqrt = Math.sqrt(-1) ;
if (sqrt == Double.NaN) { ... } // do something if sqrt is Not-A-Number
...
</java>Funktioniert übrigens NICHT!!! Warum weißt Du natürlich sofort ...
-
Ich möchte die Gelegenheit nutzen, mich nochmals ausdrücklich dafür zu entschuldigen, dass ich durch diesen schwerwiegenden Fehler meinen Beitrag derart verunstaltet habe, dass Du dermaßen außer Dir warst, dass Du (absolut verständlicherweise) beleidigend werden mußtest!
Ich bin immer noch ganz außer Rand und Band wegen deinem grobfahrlässigen Falsch-Posting :o
Ich hoffe, Du kannst mir noch einmal verzeihen, dass ich Dir den Tag so sehr vermiest habe!
nee, des is unverzeihlich
Natürlich ist es Dir noch nie passiert, Dich zu vertippen oder sonst irgendwie einen Fehler in irgendeinem - wie auch immer geartetes - Dokument zu bringen. Deswegen finde ich das, von Dir an den Tag gelegte, Verhalten als vollkommen angebracht. Weiter so!
stimmt, dank dir
nee, ernsthaft: ich habs nicht bös gemeint und wollt auch nicht beleidigend werden. Is nur falsch angekommen.
aber warum sollte
tan == Double.NaN
weit weniger hilfreich sein, als
Double.isNaN( tan )
[ Dieser Beitrag wurde am 22.05.2003 um 15:06 Uhr von crass editiert. ]
-
ok, hab mir die Sache nochmal angeschaut zwecks Double.NaN...ich geb zu, Fehler von mir.. wie ich schon weiter oben sagte: "entweder bin ich blöd"... ich bin also wohl blöd
[ Dieser Beitrag wurde am 22.05.2003 um 17:15 Uhr von crass editiert. ]
-
@crass
ganz offentsichtlich!