hallo Felix,
https://bugs.launchpad.net/openobject-a ... bug/707923
bei diesem Bug haben die Fachleute von Openerp auch schon gemerkt, das das Runden bei Zwischenergebnissen nicht der richtige Weg ist.
Es war nur nicht nachvollziehbar warum ich nicht die selben Ergebnisse wie Frank auf meiner Fedorainstallation bekommen habe. Mein Rechner hat scheinbar richtig gerechnet, aber mit falschen Rundungszwischenergebnissen.
Eine Rechnung auf einer Ubuntu 10.10 und Centos 5 Install.
Python 2.6.6 Centos Python 2.4
round(45.885.2) ergibt 46,890000000000001 damit wie auf Franks Rechner +1 Cent
Fedora 14 mit Python 2.7
round(45.885,2) = 45.88
Diese Unterschiede erklärt auch das Python Tutorial nicht
Aber leben müsste man damit trotzdem nicht. Wenn man die zu rundenden Zahlen
mit folgender einfacher Funktion bearbeitet.
def runden(zahl,stellen):
zahl = zahl*10**(stellen+1)
zahl = round(zahl,-1)
zahl = zahl*1/10**(stellen+1)
runden(45.885,2) => 45.89
Gruß
Manfred