wie weit ist 1,39999999999 von 1,40 entfern? Denke, der Fehler ist vernachlässigbar klein. Und wenns beim Ausdruck stört dann schreib doch
Code: Alles auswählen
print '%8.2f" % 1.4999999999999'
Hans
Code: Alles auswählen
print '%8.2f" % 1.4999999999999'
Dafür reicht schon Folgendes:RicmanX hat geschrieben:>>> round(1.35,1)
1.3999999999999999
Der Mangel an mathematischer Bildung gibt sich durch nichts so auffallend zu erkennen, wie durch maßlose Schärfe im Zahlenrechnen
C.F. Gauss
Welche?RicmanX hat geschrieben:alle andern Sprachen können schließlich rechnen
Code: Alles auswählen
((10.0*3.0)/3.0)-((10.0/3.0)*3.0)
Also das mußt du mir vorrechnen, daß eine Abweichung von 10E-7 (sprich zehn hoch minus sieben = 0,0000001) sich noch signifikant bemerkbar macht. Jedenfalls nicht, wenn's um Währungsrechnung geht. Bei physikalischen Berechnungen kann das etwas anders aussehen.RicmanX hat geschrieben:Das Problem ist ja das man mit den Zahlen - ich zumindest - weiterrechnen muss, und Genauigkeit ist auch notwendig.
Und wenn ich ne Zahl mit zehn Nachkommastellen hab, ist das genauso schlecht wie wenns 50 auch nur um nicht sehr viel falsch ist... alle andern Sprachen können schließlich rechnen, das und das Python nur auf wenigen Servern installiert ist ist mE das einzige Manko an Python.
Code: Alles auswählen
print "%d" % 1.500001 #druckt 1!!!!!
print "%.0f" % 1.500000001 # gibt 2
Code: Alles auswählen
>>> a = "%4.2f" % 1.49999999
>>> print a
1.50
Code: Alles auswählen
>>> a="%.2f" % 1.4999999999
>>> b=2*a
>>> print a
1.50
>>> print b
1.501.50
>>>