我已阅读以下页面:
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
的{{1}}循环。
答案 0 :(得分:5)
你不能使用math.ceil吗?如果你使用浮动分区,它将做必要的事情。目前你正在进行整数除法。
答案 1 :(得分:3)
total
是一个整数。因此,/
正在进行整数除法。除以10.
(并希望精确限制不会在***中咬你),或者在Decimal
中使用适当的上下文进行数学运算。