Hallo Zusammen,
Das Rundungsprobleme im Zusammenhang mit Float auftreten können, ist ja bekannt.
Normale Additionen oder Subtraktionen sollten jedoch kein Problem sein.
Mit Delphi 6 ergibt folgenden Operation mit Double nicht 0
Delphi-Quellcode:
var
xDouble : Double;
begin
xDouble := 0;
xDouble := xDouble + 3743.8;
xDouble := xDouble - 3743.8;
Verwendet man anstelle von Double Extended, ist das ganze noch merkwürdiger: Hier bekommt man 0, solange keine Datenbank mit TDatabase angesprochen wird, danach kommt der gleiche Fehler. Das bedeutet, das die gleiche Funktion nach dem ersten Datenbank- Connect ein anderes Ergebnis liefert als davor.
Natürlich kann ich einen Workaround basteln, z.B alle Werte Runden vor Prüfung auf 0,
mir gefällt jedoch nicht wenn das System so unzuverlässig rechnet.
Kennt jemand eine Lösung zum Problem, eventuell eine Compilerdirektive o.a.
Vielen Dank