我怎样才能摆脱这种重写?
In [38]: Decimal('0.000000000000001')
Out[38]: Decimal('1E-15')
对f
表示类型的号码调用format
,该号码请求定点表示法,可以满足您的要求:
>>> x = decimal.Decimal('0.000000000000000001')
>>> x
Decimal('1E-18')
>>> format(x, 'f')
'0.000000000000000001'
注意format(Decimal(str(a)).normalize(), 'f')
不是你想要的,因为Decimal(str(a))
是不必要的,normalize
可能会降低精度:
>>> x = decimal.Decimal('1.234123412341234123412341234123412341')
>>> x.normalize()
Decimal('1.234123412341234123412341234')