65 votes

Arrondir à la deuxième décimale en Python

Comment arrondir un nombre à la deuxième décimale en python ? Par exemple:

 0.022499999999999999

Devrait arrondir à 0.03

 0.1111111111111000

Devrait arrondir à 0.12

S'il y a une valeur à la troisième décimale, je veux qu'elle soit toujours arrondie en me laissant 2 valeurs derrière la virgule.

35voto

Edwin Points 1335
from math import ceil

num = 0.1111111111000
num = ceil(num * 100) / 100.0

Voir: math.ceil documentation round documentation - Vous voudrez probablement vérifier cela de toute façon pour référence future

23voto

Mark Ransom Points 132545
x = math.ceil(x * 100.0) / 100.0

15voto

pcperini Points 11448

Extrapolant à partir de la réponse d'Edwin :

 from math import ceil, floor
def float_round(num, places = 0, direction = floor):
    return direction(num * (10**places)) / float(10**places)

Utiliser:

 >>> float_round(0.21111, 3, ceil)  #round up
>>> 0.212
>>> float_round(0.21111, 3)        #round down
>>> 0.211
>>> float_round(0.21111, 3, round) #round naturally
>>> 0.211

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X