Python:说服Decimal不使用E表示法

时间:2014-05-31 22:56:46

标签: python decimal

如何摆脱这种重写?

In [38]: Decimal('0.000000000000001')
Out[38]: Decimal('1E-15')

1 个答案:

答案 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')