我做了一些计算,给出了非常小的十进制数,例如,0.0000082
当我将其保存在变量中时,它会变为指数形式。我最终需要将结果作为字符串。因此,使用str()
转换结果是不可能的,因为它会将e
保留在字符串中。
我需要字符串恰好有8个小数位。有没有办法在保持8位精度完好的同时做到这一点?
另一个例子:5.8e-06
应转换为'0.00000580'
最终字符串中的尾随零并不重要。
我需要在其他地方使用该字符串。所以,这不应该在print()
函数中完成。
答案 0 :(得分:5)
指数表示法不是数字的固有属性(存储为二进制浮点值)。将数字转换为带str
的字符串时,它只是默认表示。如果使用format
函数将数字转换为字符串,则可以指定自己的格式选项。尝试这样的事情:
format(5.8e-06, '.8f')
格式说明符中的8
告诉它使用八位精度,而f
要求将其写为纯十进制而不使用指数表示法。您可以阅读有关格式符号in the documentation的更多信息。
答案 1 :(得分:3)
你可以试试:
{
"ignored_packages":
[
"Vintage"
]
"selectedBrowser":
[
"chrome"
]
}
答案 2 :(得分:3)
另一个想法:
'{0:.7f}'.format(0.0000082)
答案 3 :(得分:2)
print ("{:.6f}".format(1e-4))
将打印出来
0.000100
答案 4 :(得分:0)
你可以使用print:
>>> number = 1e-08
>>> number
1e-08
>>>print("{:.12f}".format(float(number)))
0.000000010000
或您可以转换数字并将其存储在字符串中:
>>> str1 = "{:.12f}".format(float(number))
>>> str1
'0.000000010000'