Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#10

AW: unerklärlicher DB-eintrag mit currency werten

  Alt 28. Jun 2010, 17:39
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.
Andreas
  Mit Zitat antworten Zitat