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 decimaldef 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