Heim  >  Artikel  >  Backend-Entwicklung  >  Ausführliche Erklärung der runden Rundung – der Unterschied zwischen Python2- und Python3-Versionen

Ausführliche Erklärung der runden Rundung – der Unterschied zwischen Python2- und Python3-Versionen

高洛峰
高洛峰Original
2016-10-17 16:05:431886Durchsuche

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.


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Python-Funktion - abs()Nächster Artikel:Python-Funktion - abs()