Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
Die Frage ist m.E. nicht klar. NaN (not a number) kann z.B. bei Division durch 0 enstehen. Das muss man dann eben in der Programmoierung abfangen oder berücksichtigen. Oder was soll der EibPC da sonst machen?
Ein Popup mit der Meldung "Oh, da stimmt was nicht, meintest Du vielleicht ..."
Ne, aber eine Funktion a la "if Ergebnisvariable==nan() then ...." Wäre sicher praktisch.
Treffer - versenkt!
Ich konnte mein Programm natürlich berichtigen - es war tatsächlich eine Division durch 0, enertegus, nur generell wär's schon interessant, solche "exceptions" abfangen zu können.
Btw. der Fehler entstand, weil ich das Vorzeichen der Temperatur "elegant" ermitteln wollte, indem ich sign = t / abs(t) gewählt hatte. Ein bisserl blauäugig...
Ausnahmenbehandlung ist sicher was anderes als was Uwe! vorgeschlagen hatte. In C erledigt man das mit einer errno-Variable - da ist man dann bei elog() und lognum().
aus der elog() Meldung kann ich aber nicht drauf schließen, welche Variable jetzt einen Fehler verursacht hat, oder?
Aber richtig, bir ging es nicht um eine vollständige Fehlerbehandlung, sondern darum gezielt bestimmte "Werte" abzufragen, die sich sonst nicht darstellen lassen, also ebeb z.B. ein "nan".
Idee: was kommt denn bei "if Variable = 1 / 0 then ...." raus? Wäre das im Falle von "Variable = nan" true?
Oder eleganter:
NAN = 1 / 0
if Variable = NAN then ....
....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!
Wie auch in http://de.wikipedia.org/wiki/NaN dargestellt, müsste das bestenfalls mit einer isnan Funktion realisiert werden. NAN ist aber nicht 1/0, das wäre zu kurz gedacht. Z.b. ist auch log(-2) NaN usw.
Besser ist da aber
if d!=0 then x=1/d endif
schon klar. Mir ging es um die Idee, ob man einer Variablen absichtlich den Wert "nan" zuweisen kann, um sie dann in Vergleichen zu verwenden.
Dein Beispiel ist natürlich sauber, das müsste man dann aber theoretisch bei jeder Division so machen. Ok, umgekehrt müsste man auch bei jeder Division das Ergebnis mit =isnan() prüfen. Kommt letztlich fast auf's gleiche raus....
....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar