Python 将十进制数字精确转换为字符串类型

Python 将十进制数字精确转换为字符串类型,python,decimal,floating-accuracy,Python,Decimal,Floating Accuracy,如何将decimal模块中的十进制数转换为字符串,以便在列表中循环?或者,当试图计算某个东西精确到的小数位数(忽略末尾的尾随零)时,还有其他方法更有效吗 相反,我想要: print(str(number)) >> '0.00000001' 编辑:我不需要。要打印它,我需要在for循环中循环每个数字。谢谢使用格式 print('{0:f}'.format(number)) 使用格式 print('{0:f}'.format(number)) 如果您只是想要数字中的小数位数(忽略尾

如何将decimal模块中的十进制数转换为字符串,以便在列表中循环?或者,当试图计算某个东西精确到的小数位数(忽略末尾的尾随零)时,还有其他方法更有效吗

相反,我想要:

print(str(number))
>> '0.00000001'
编辑:我不需要。要打印它,我需要在for循环中循环每个数字。谢谢

使用格式

print('{0:f}'.format(number))
使用格式

print('{0:f}'.format(number))

如果您只是想要数字中的小数位数(忽略尾随的零),只需使用
decimal.decimal.as\u tuple
,因此:

In [48]: number = decimal.Decimal('0.00000001')
    ...:

In [49]: number.as_tuple()
Out[49]: DecimalTuple(sign=0, digits=(1,), exponent=-8)

In [50]: abs(number.as_tuple().exponent)
Out[50]: 8
注意,为了安全起见,您可能需要
。规范化

In [57]: number = decimal.Decimal('3.0000')

In [58]: number.as_tuple()
Out[58]: DecimalTuple(sign=0, digits=(3, 0, 0, 0, 0), exponent=-4)

In [59]: number.normalize().as_tuple().exponent
Out[59]: 0
所以


如果您只是想要数字中的小数位数(忽略尾随的零),只需使用
decimal.decimal.as\u tuple
,因此:

In [48]: number = decimal.Decimal('0.00000001')
    ...:

In [49]: number.as_tuple()
Out[49]: DecimalTuple(sign=0, digits=(1,), exponent=-8)

In [50]: abs(number.as_tuple().exponent)
Out[50]: 8
注意,为了安全起见,您可能需要
。规范化

In [57]: number = decimal.Decimal('3.0000')

In [58]: number.as_tuple()
Out[58]: DecimalTuple(sign=0, digits=(3, 0, 0, 0, 0), exponent=-4)

In [59]: number.normalize().as_tuple().exponent
Out[59]: 0
所以


你真正想要完成的是什么?你真正想要完成的是什么?