Man braucht folgendes Hintergrundwissen:
Der Delphi Datentyp
Currency ist ein
Festkommadatentyp und hat genau 4 Nachkommastellen.
Solange man Currency verwendet gibt es keine Rundungsprobleme.
Der Delphi Datentyp
Double ist ein
Flieskommadatentyp.
Er hat die bekannten Rundungsprobleme.
Datenbanken haben ihre eigenen Datentypen wie z.B.
Decimal(18,6).
Diese Datentypen kennen keine Rundungsprobleme, solange man mit
SQL-Anweisungen rechnet.
Leider kann Delphi den Datentyp Decimal(18,6) weder in einen
Double noch in ein
Currency kopieren ohne das es zu einem Genauigkeitsverlust kommt.
Die Datenbank ist also genauer als alle Delphi Datentypen.
==> Feld auf 4 Nachkommastellen reduzieren oder mit den Rundungsfehlern leben.