如何在python中将指数值转换为字符串格式?

时间:2017-08-22 17:58:28

标签: python python-3.x

我做了一些计算,给出了非常小的十进制数,例如,0.0000082

当我将其保存在变量中时,它会变为指数形式。我最终需要将结果作为字符串。因此,使用str()转换结果是不可能的,因为它会将e保留在字符串中。 我需要字符串恰好有8个小数位。有没有办法在保持8位精度完好的同时做到这一点?

另一个例子:5.8e-06应转换为'0.00000580'最终字符串中的尾随零并不重要。 我需要在其他地方使用该字符串。所以,这不应该在print()函数中完成。

5 个答案:

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