Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

05.05.2011, 10:16

NAN - woher?

Hi,

ich habe in einer meiner Berechnungen einen Bug, die dazu führt, dass eine Variable vom Typ double zu NAN wird.

Das finde ich jetzt überraschend, ich war bisher der Meinung, NAN ist eine Fließpunktzahl nur dann, wenn die interne Bit-Darstellung so ungültig ist, dass sich daraus keine gültige Fließpunktzahl erstellen lässt.

Aber wie kann eine Rechenoperation zu sowas führen? Dinge wie Division durch 0 sollten ja eher einen Crash verursachen?

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

2

05.05.2011, 10:20

Dinge wie Division durch 0 sollten ja eher einen Crash verursachen?

Öh nein, genau solche Dinge führen zu einem NaN.

3

05.05.2011, 11:03

arg! zu spät...

aber übrprüfe mal ob vielleicht eine deiner variablen bereits NAN is und du damit weiterrechnest... dann is alles nacher auch invalid.
und du könntest die funktion(en) herzeigen in der der fehler aufrtitt

lg

Helmut

5x Contest-Sieger

Beiträge: 692

Wohnort: Bielefeld

  • Private Nachricht senden

4

05.05.2011, 14:09

Dinge wie Division durch 0 sollten ja eher einen Crash verursachen?

Öh nein, genau solche Dinge führen zu einem NaN.

Eigentlich habt ihr beide Recht. Ob sowas eine Exception verursacht lässt sich mit _controlfp einstellen.

Ciao
Helmut
Sei stets geduldig gegenüber Leuten, die nicht mit dir übereinstimmen. Sie haben ein Recht auf ihren Standpunkt - trotz ihrer lächerlichen Meinung. (F. Hollaender)

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

5

05.05.2011, 15:01

Naja nach dem IEEE 754 Standard führen solche Dinge afaik zu einem Quiet NaN, natürlich kann man die x87 FPU umkonfigurieren sodass eine Hardware Exception ausgelöst wird. Aber gut, was genau passiert ist rein auf Sprachebene sowieso undefiniert...

Werbeanzeige