Rundungsprobleme bei MySQL 4.1 auch bei Spaltentypen DECIMAL?

Tim TConnect at gmx.net
Mi Jun 23 17:44:55 CEST 2010


Hallo liebe Liste,

ich habe gerade so ein Problem, bei dem mir mein MySQL 4.1 Server eine
Abfrage dauernd abrundet, obwohl sich die Berechnungen auf Spalten
beziehen, die laut Dokumentation kaufmännisch gerundet werden sollten
(DECIMAL).

Die Abfrage sieht ungefähr so aus:

SELECT 
ROUND(SUM(nettopreis) * 1.19, 2) as bruttopreis
FROM tabelle
WHERE bedingungen


-> Speziell diese Abfrage bezieht sich nur auf eine Zeile, bei der
nettopreis = 11.5 ist.


Die Spalte nettopreis hat als Typ DECIMAL(10,5) eingestellt. Als
Ergebnis erhalte ich aber statt dem korrekten Wert 13.69 (ungerundet
wären es eigentlich 13.685) den Wert 13.68. Teste ich die Abfrage
allerdings auf einem MySQL 5 System, so kommt wie erwartet 13.69 dabei
heraus. Das Problem ist, dass ich die Datenbank aufgrund bestimmter
Vorgaben erst einmal auf MySQL 4.1 belassen muss :-( - der Tip, auf
MySQL 5 umzusteigen, hilft mir an dieser Stelle also nicht weiter.

Gibt es andere Möglichkeiten, bestimmte Rundungsverfahren zu erzwingen?


Liebe Grüße
Tim