在python中将指数形式的数字转换为十进制形式

在python中将指数形式的数字转换为十进制形式,python,python-2.7,python-3.x,Python,Python 2.7,Python 3.x,我有一个非常愚蠢的问题,假设我有一个数字1.7000043572e-05我应该如何将它转换成float,即0.0000170000043572,如果你只是将数字输入到你的脚本中,python会理解为float 如果是字符串,则使用其内置项进行转换,例如: x = float("0.423423e4") print "%.2f" % (x) 将输出 4234.23 您需要转换为浮点并使用str.format指定精度: In [41]: print "{:f}".format(float("1

我有一个非常愚蠢的问题,假设我有一个数字
1.7000043572e-05
我应该如何将它转换成float,即
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

1.7000043572E-05
0.0000170000043572
一样是法定浮动。这些“数字”是字符串还是浮点数?这些数字是字符串扫描你删除IPython的东西。。。这可能会让初学者感到困惑。仅仅调用float实际上是行不通的,它仍然会给出指数格式