将指数形式的数字转换为 python 中的小数形式

Converting a number in exponential form to decimal form in python

我有一个非常愚蠢的问题,假设如果我有一个数字 1.70000043572e-05 我应该如何将它转换为浮点数,即 0.0000170000043572.

如果您只是将数字输入到脚本中 python 会理解为浮点数。

如果它是一个字符串,那么使用内置的 float 来进行转换,例如:

x = float("0.423423e4")
print "%.2f" % (x)

会输出

4234.23

您需要转换为浮点数并使用 str.format 指定精度:

 In [41]: print "{:f}".format(float("1.70000043572e-05"))
 0.000017

# 16 digits 
In [38]: print "{:.16f}".format(float("1.70000043572e-05"))
0.0000170000043572

只要调用 float 就会得到 1.70000043572e-05

使用旧样式格式:

In [45]: print( "%.16f" % float("1.70000043572e-05"))
0.0000170000043572