2017-09-11 1 views
-1

je dois arrondir mon entrée deux fois quand ils ont 3 décimales et pour ce faire comme suit, j'autour de l'entrée deux fois:Python ronde 3 décimales avec décimales() et effectuer un arrondi deux fois ou plus

3.445 -> 3.45 -> 3.5 

Existe-t-il un meilleur moyen d'y parvenir ou mon code ci-dessous est bien?

number = 3.445 
print Decimal(number).quantize(Decimal("0.001"),       
     decimal.ROUND_HALF_UP).quantize(Decimal("0.01"), 
      decimal.ROUND_HALF_UP).quantize(Decimal("0.1"), 
       decimal.ROUND_HALF_UP) 
+3

Pourquoi voulez-vous arrondir deux fois? Pourquoi voulez-vous 3,5 au lieu de 3,4, ce qui est plus proche? – user2357112

+1

Et pourquoi arrondissez-vous * trois fois? – user2357112

+0

Parce que les 5 derniers tournent le 4 à sa gauche à un 5 et ainsi de suite ... C'est ce que mon client m'a demandé. Y a-t-il une meilleure manière de faire cela? – Soichiro

Répondre

0

Si je comprends bien, tout ce que vous voulez faire est rond jusqu'à à une décimale près. Dans ce cas, cela devrait faire l'affaire:

myDecimal = Decimal(3.445) 
myDecimal.quantize(Decimal(10) ** -1, rounding=decimal.ROUND_UP) 
+0

Ce n'est pas ce que OP demandait ... –