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

4

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


3
1.70000043572e-050.0000170000043572都是合法的浮点数,不是字符串。 - eumiro
1
这些数字是字符串。 - U-571
2个回答

10
您需要将其转换为浮点数,并使用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

5

如果你只是在Python脚本中输入数字,Python会自动将其识别为浮点数。

如果它是一个字符串,则可以使用内置的float函数进行转换,例如:

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

将输出

4234.23

4
你能否删除IPython相关的内容,因为这可能会让初学者感到困惑。 - sarveshseri
1
仅仅调用float并不能正常工作,它仍然会给出指数格式。 - Padraic Cunningham

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接