如何摆脱这种重写?
In [38]: Decimal('0.000000000000001')
Out[38]: Decimal('1E-15')
答案 0 :(得分:2)
使用format
演示文稿类型(请求定点表示法)对号码调用f
可以满足您的要求:
>>> 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')