1

我已阅读以下页面:

python小数-四舍五入到最接近的整数(无美分)-使用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.

4

2 回答 2

5

你不能使用 math.ceil 吗?如果您使用浮点除法,它将做必要的事情。目前你正在做一个整数除法。

于 2012-07-25T03:51:05.533 回答
3

total是一个整数。因此,/正在做整数除法。要么除以10.(并希望精度限制不会在 *** 中咬你),要么在Decimal适当的上下文中进行数学计算。

于 2012-07-25T03:53:48.913 回答