SUM ungenau ?!

Hallo,

Mein Problem ist folgendes, ich brauche die Summe einiges Netto-Betrages Bsp: 4269.85, diesen Betrag hab ich jetzt testweise 5054 mal in einer Tabelle angelegt.

Als Ergebnis erhalte ich: 21579821.9000006
Das sind zwar nur 0.0000006 zuviel, jetzt hab ich aber noch ein Feld Merhwertsteuer und mit dem berechne ich dann den gesamten Brutto-Betrag. Das Resultat hat dann schon eine Abweichung von 0.02.
Kann es sein das ich noch irgendwie in einen anderen Typ casten muss big _decimal oder ähnliches, gibts sowas?


Meine Abfrage sieht so aus:

SELECT SUM(betrag) AS netto, SUM(betrag*(mwst/100)) AS mwst, SUM(betrag*((mwst/100)+ 1)) AS brutto FROM rechnungen

Welchen Datentyp haben die benutzten Spalten?

Die Spalten sind double precision.

Das bedeutet, das deine Werte als Fließkommazahl gespeichert werden.
Schlecht für deinen Anwendungsfall.

Für Geldbeträge ect solltest du auf NUMERIC ausweichen, dann hast du eine festgelegte Präzision und läufst nicht in Rundungsfehler.

THx, ich werde es mal durchtesten, auf den ersten Blick siehts aber so aus als würde der Fehler weiterhin bestehen mit der Ausnahme das die zuvielen Stellen einfach abgeschnitten werden.


[EDIT]
OK, Besten Dank!!
Es läuft alles perfekt und die Rundungsfehler treten auch nicht mehr auf :wink: