我正在开发一个将数字存储为浮点数的程序,我最终将其作为货币写入文件。我目前正在使用round()函数将其舍入为2位小数,但业务领域希望我无论第三个小数是多少都要舍入到下一个小数。例如:
x = 39.142
在这种情况下,我试图让x向上舍入到39.15。显然,当我执行圆函数时,我得到39.14 ......
>>> round(x, 2)
39.14
有没有办法可以随时到达下一分钱?我应该提一下,我正在处理的数字将作为货币打印到文件中。
答案 0 :(得分:14)
import decimal
D = decimal.Decimal
cent = D('0.01')
x = D('39.142')
print(x.quantize(cent,rounding=decimal.ROUND_UP))
# 39.15
小数有很多舍入选项。可以找到选项及其含义here。
答案 1 :(得分:1)
如果你想用美分写,你可以使用int(x * 100 + .5)从浮动美元中获得美分整数。