我是Python的新手,我对十进制库有问题。
某些问题要求必须丢弃位于最后一个非零数字后面的小数点后的所有零。UVA11821
比如0.1230000
是非法的答案。应当转化成0.123
。
我打算用python和十进制来做这个问题,但是我不能做转换工作。这是我的代码。
from decimal import *
a=eval(input())
con=getcontext()
con.prec=100
for i in range(0,a):
summ=Decimal('0')
while 1:
num=Decimal(input())
if num==0:
break;
summ=summ+num
print(summ)
您是否尝试过归一化?
通过去除最右边的尾随零并将所有等于Decimal('0')的结果转换为Decimal('0e0'),对数字进行归一化。
它应该适合您的情况。
import decimal
print(decimal.Decimal('0.1230000').normalize())
0.123
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句