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)