Heim > Artikel > Backend-Entwicklung > Ausführliche Erklärung der runden Rundung – der Unterschied zwischen Python2- und Python3-Versionen
Die Methode „round()“ gibt den Dezimalpunkt des auf n Stellen gerundeten Werts zurück.
Syntax
Das Folgende ist die Syntax der Round()-Methode:
round( x [, n] )
Parameter
x – Dies ist ein numerischer Wert, der den Wert angibt, der formatiert werden muss.
n – Dies ist ebenfalls ein numerischer Wert, der angibt, wie viele Ziffern beibehalten werden sollen nach dem Dezimalpunkt
Rückgabewert
Diese Methode gibt den Dezimalpunkt des auf n Stellen gerundeten Werts x zurück
PS: Round rundet die eingehenden Daten ab. Wenn dies nicht der Fall ist übergeben, der Standardwert ist 0 (dh der ganzzahlige Teil bleibt erhalten). Wenn .ngigits
Beispiel
Das folgende Beispiel zeigt die Round( )-Methode
#!/usr/bin/python2 print "round(80.23456, 2) : ", round(80.23456, 2) print "round(100.000056, 3) : ", round(100.000056, 3) print "round(-100.000056, 3) : ", round(-100.000056, 3)
Wenn wir das obige Programm ausführen, werden die folgenden Ergebnisse erzeugt:
round(80.23456, 2) : 80.23 round(100.000056, 3) : 100.0 round(-100.000056, 3) : -100.0
Der Unterschied zwischen Python3- und Python2-Versionen
Python2 rundet x von 0 weg auf das nächste Vielfache, wie zum Beispiel Round(0.5)=1, Round(-0.5)=-1;
Python3 rundet x auf das nächste gerade Vielfache, wie etwa Runde(0,5)=0, Runde(1,5) =2,0, Runde(2,5)=2,0
Code:
#!/usr/bin/python2 print round(2.635, 2) print round(2.645, 2) print round(2.655, 2) print round(2.665, 2) print round(2.675, 2)
Ausgabeergebnis:
2.63 2.65 2.65 2.67 2.67
Runde Methodendefekte
Anhand des obigen Beispiels können Sie feststellen, dass die Rundungsmethode ähnlich aussieht wie: Unser Verständnis ist anders. Tatsächlich handelt es sich hierbei nicht um einen Rundungsfehler. Dies ist hauptsächlich auf die Konvertierung von Dezimalzahlen in computerinterne Binärzahlen zurückzuführen Darüber hinaus kann dieses Problem nicht mit begrenzter Präzision gelöst werden und muss auch nicht gelöst werden.
Das Dezimalmodul von Python kann zur Lösung dieses Problems verwendet werden.
Wenn Sie nicht runden müssen, können Sie auch unsere bekannteste print("%.2f" % 2.675)-Methode verwenden.