2012-07-25 54 views
1

我讀過以下網頁:圍捕與Python

python decimals - rounding to nearest whole dollar (no cents) - with ROUND_HALF_UP

http://docs.python.org/library/decimal.html

我有以下代碼:

total_num = Decimal(str(total/10)) 
total_num.quantize(Decimal('1'), rounding=ROUND_UP) 

但它總是捨去?所以,如果我有221,我希望它返回23.現在我得到22。有什麼我誤解這個?

[編輯]

我改成如下:total_num = int(math.ceil(float(total)/10))

我需要一個int繼續與for環具有range

回答

5

你不能使用math.ceil嗎?如果您使用浮動分區,它將做必要的事情。目前你正在做整數除法。

+0

還補充說,OP使用一個浮點值來確保它進行float division – jdi 2012-07-25 03:54:56

3

total是一個整數。因此,/正在做整數除法。除以10.(並希望精確限制不會在***中咬你),或者在Decimal中用適當的上下文進行數學計算。

+0

'>>> 221/10' '22' – 2012-07-25 04:06:28