Maison  >  Article  >  développement back-end  >  Introduction à la différence entre l'arrondi en python2 et python3

Introduction à la différence entre l'arrondi en python2 et python3

巴扎黑
巴扎黑original
2017-08-21 14:44:511999parcourir

La méthode round() renvoie le point décimal de la valeur arrondie à n chiffres.

Syntaxe

Voici la syntaxe de la méthode round() :

round( x [, n] )

Paramètres

x --Il s'agit d'une valeur numérique, indiquant la valeur qui doit être formatée

n --Il s'agit également d'une valeur numérique, indiquant le nombre de chiffres à conserver après la virgule décimale

Valeur de retour

Cette méthode renvoie Le point décimal de la valeur La partie entière est arrondie et le résultat renvoyé est un nombre à virgule flottante.

Exemple

L'exemple suivant montre l'utilisation de la méthode round()

Lorsque nous exécutons le programme ci-dessus, ce qui produira les résultats suivants :
#!/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)

La différence entre les versions Python3 et Python2
round(80.23456, 2) : 80.23
round(100.000056, 3) : 100.0
round(-100.000056, 3) : -100.0

Python2 arrondit x au multiple le plus proche de 0, tel que round(0.5)=1, round( -0.5)=-1;

Python3 arrondira x au multiple pair le plus proche, tel comme round(0.5)=0, round(1.5)=2.0, round(2.5)=2.0

Code :

Résultat de sortie :
#!/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)

Défaut de la méthode round
2.63
2.65
2.65
2.67
2.67

Grâce à l'exemple ci-dessus, vous pouvez constater que la méthode d'arrondi de round semble être conforme à notre compréhension. En fait, ce n'est pas un bug de round. Cela vient principalement de. la conversion du nombre décimal en binaire interne à l'ordinateur lors de la saisie. De plus, ce problème ne peut pas être résolu avec une précision limitée et n'a pas besoin d'être résolu.

Le module décimal de Python peut être utilisé pour résoudre ce problème.

Si vous n'avez pas besoin d'arrondir, vous pouvez également envisager d'utiliser notre méthode print("%.2f" % 2.675) la plus familière.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn