Einzelnen Beitrag anzeigen

freimatz

Registriert seit: 20. Mai 2010
1.444 Beiträge
 
Delphi 11 Alexandria
 
#1

6.76609068141504e-318

  Alt 24. Aug 2022, 11:54
Hallo zusammen,
oben genannte Zahl plagt mich. Wir haben umfangreiche automatische Test. Diese laufen auf 64-Bit und irgendwann erscheint dieser Wert statt 0. Es ist jedoch nicht immer stabil. Lokal bei mir arbeite ich mit 32-Bit (bei 64-Bit geht debuggen nicht) und dort kann ich das Problem nicht nachstellen.
Für den Anweder ist das egal, in der Anzeige wird eh gerundet. Der automatische Test wird dann halt rot.

Binär ist die Zahl laut Delphi-Debugger: $80 $E5 $14 $00 $00 $00 $00 $00
Vielleicht ist da nur das letzt Bit daneben. Man könnte das vielleicht einfach runden. Die Delphi-Rundungsfunktionen gehen aber alle auf Zehnerpotenzen. Ich versuche mal etwas wie "Result := Round(AValue / 1E-10) * 1E-10".

Ich habe eine vage Idee wie das gehen könnte, bin aber dankbar für weitere Anregungen.
  Mit Zitat antworten Zitat