2017-09-11 38 views
-1

我要圓我輸入兩次當他們有3位小數要做到這一點,我圓了兩次輸入如下:Python的第3輪小數位與十進制()和執行四捨五入兩次或兩次以上

3.445 -> 3.45 -> 3.5 

有沒有更好的方式來實現這個或我的代碼在下面是好的?

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

爲什麼你想要兩次?你爲什麼要3.5而不是3.4,這更接近? – user2357112

+1

你爲什麼四捨五入?三次? – user2357112

+0

因爲最後5把左邊的4轉到5等等......這是我的客戶問我的。有一個更好的方法嗎? – Soichiro

回答

0

如果我理解正確的話,所有你想要做的就是圓高達到小數點後一位。在這種情況下,這應該做的工作:

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

這不是OP要求的... –