Einzelnen Beitrag anzeigen

Justanothernickname

Registriert seit: 30. Mai 2007
1 Beiträge
 
#1

Problem beim Vergleichen von Real-Zahlen

  Alt 30. Mai 2007, 19:11
Hi,

Hintergrund:
Habe ein allgemeines Problem, daß sich auf den Datentyp Real bezieht. Ich habe ein Programm geschrieben, in dem Real-Werte in einer Matrix abgespeichert wurden. In dem Programm war es auch notwendig, neben den Real-Werten auch ungültige Werte darzustellen. Versucht habe ich das mit der größten möglichen Real-Zahl. Dazu habe ich diesen Wert einer Konstanten mit dem Namen 'Unendlich' zugewiesen.

Problem:
Bei der Ausgabe der Matrix soll der Wert der entsprechenden Zelle ausgegeben werden, falls sie ungleich der Konstanten 'Unendlich' ist, ansonsten der String 'Unendlich'. Leider schlägt der Vergleich jedesmal fehl. Wenn ich mir die Differenz zwischen den gespeicherten Werte und der Konstanten ausgeben lasse, dann wird sie mit xE106 ausgegeben. Damit der Vergleich problemlos funktioniert, muß ich bis auf 1E22 runtergehen.

Rein technisch sollte beim abspeichern der Konstanten der Wert doch einfach nur bitweise kopiert werden. Es erfolgen doch keinerlei Rechenoperationen, bei denen Rundungsdifferenzen auftreten. Hat hier vielleicht jemand eine logische Erklärung, warum schon beim bloßen kopieren Real-Werte verändert werden?
  Mit Zitat antworten Zitat