2017-02-20 3 views
-1

Also, ich habe keine Ahnung, warum dies happing ist. Ich weiß, dass ich das mit der Rundung beheben kann, aber ich würde gerne wissen, warum ich das überhaupt tun muss. Ich wähle eine Menge von Double, gruppiere sie nach einem gemeinsamen Faktor und verwende SUM für sie. In den Ergebnissen bekomme ich sehr lange Dezimalzahlen, manchmal eine gerundete Wiederholung. Ein Beispiel könnte 185708.90000000002 oder 199959.34999999998 sein.MySQL SUM mit GROUP BY produziert lange Dezimalzahlen

Ich habe keine Ahnung, wie das passieren könnte. Am genauesten sind meine Zahlen vor der Summierung 10^2. Es ist wichtig zu beachten, dass dies nicht immer passiert, nur gelegentlich. In den meisten Fällen sehen die Zahlen korrekt aus.

+4

https://dev.mysql.com/doc/refman/5.7/en/problems-with-float.html – Wrikken

Antwort

0

Ich habe die Antwort auf diese Frage dank eines Kommentars gefunden. Floats und Doubles werden nicht intern als exact-Nummern gespeichert. Das Konvertieren der Spalten in Decimal löst die meisten Probleme.