我在处理十进制值时遇到困难,在某些情况下需要将其用于算术,而在其他情况下则需要将其用作字符串。具体来说,我有一份费率清单,例如:
rates=[0.1,0.000001,0.0000001]
我使用它们来指定图像的压缩率。我最初需要将这些值作为数字,因为我需要能够对它们进行排序以确保它们按特定顺序排列。我还希望能够将每个值转换为字符串,这样我就可以 1) 将费率嵌入到文件名中,2) 将费率和其他详细信息记录在 CSV 文件中。第一个问题是任何超过 6 位小数的浮点数在转换为字符串时都是科学格式:
>>> str(0.0000001)
'1e-07'
所以我尝试使用Python的Decimal模块,但它也将一些浮点数转换为科学记数法(似乎与我读过的文档相反)。前任:
>>> Decimal('1.0000001')
Decimal('1.0000001')
# So far so good, it doesn't convert to scientific notation with 7 decimal places
>>> Decimal('0.0000001')
Decimal('1E-7')
# Scientific notation, back where I started.
我还按照多篇文章中的建议研究了字符串格式,但我没有任何运气。任何建议和指示都会受到这位 Python 新手的赞赏。
您必须指定字符串格式:
["%.8f" % (x) for x in rates]
这产生['0.10000000', '0.00000100', '0.00000010']
。与Decimal
, too.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)