Einzelnen Beitrag anzeigen

BigAl

Registriert seit: 6. Sep 2008
Ort: Kehl
504 Beiträge
 
Delphi 12 Athens
 
#3

AW: Prüfen ob eine Single Variable einen gültigen Wert enthält

  Alt 13. Aug 2022, 17:42
Hallo Uwe!

As always: Du bist einfach klasse. Manchmal is es so einfach

Ich hab es so gemacht:
Delphi-Quellcode:
  if Result.SpecialType in [fsDenormal, fsNDenormal, fsInf, fsNInf] then
    Result := Single.NaN;
Funktioniert perfekt. Mit NaN kann ich was anfangen bzw. das wird auch überall sauber als "NaN" angezeigt...

Nachtrag! Korrekt muss es sein:
Delphi-Quellcode:
  if Result.SpecialType in [fsDenormal, fsNDenormal, fsInf, fsNInf, fsNan] then
    Result := Single.NaN;
NaN ist scheinbar nicht gleich NaN. Result.ToString wirft ein Exception, wenn z.B. die Byte-Folge 255, 140, 66, 150 in den den Speicherbereich des Singles geladen wird. SpecialType ergibt dann zwar fsNan, aber alle weiteren Funktionen, welche diesen Single benutzen, werfen eine Exception. Wird explizit NaN in den Single geschrieben, dann gibt ToString ein 'NAN' aus...

Alex
Man sollte nie so viel zu tun haben, dass man zum Nachdenken keine Zeit mehr hat. (G.C. Lichtenberg)

Geändert von BigAl (13. Aug 2022 um 21:30 Uhr)
  Mit Zitat antworten Zitat