python的decimal方法保留两位小数

python的decimal方法保留两位小数

def my_round(num, digits):

dig = '0.'

for d in range(digits):

dig += '0'

return float(decimal.Decimal(str(num)).quantize(decimal.Decimal(dig)))

print(round(3.15, 1))

print(my_round(3.15, 1))

print(round(13.145, 2))

print(my_round(13.145, 2))

输出的是
3.1
3.2
13.14
13.14

因为py3.X的round函数浮点处理有点微调。
所以我自己写了一个decimal方法。
现在处理一位小数是对的,但是两位小数就不对了。
如何处理呢?谢谢。


回答:

略作修改:

python">import decimal

def my_round(num, digits):

dig = '0.'

for d in range(digits):

dig += '0'

return float(decimal.Decimal(str(num)).quantize(decimal.Decimal(dig), rounding=decimal.ROUND_HALF_UP))

print(round(3.15, 1))

print(my_round(3.15, 1))

print(round(13.145, 2))

print(my_round(13.145, 2))

以上是 python的decimal方法保留两位小数 的全部内容, 来源链接: utcz.com/p/938337.html

回到顶部