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

Posted

技术标签:

【中文标题】在python中将指数形式的数字转换为十进制形式[重复]【英文标题】:Converting a number in exponential form to decimal form in python [duplicate] 【发布时间】:2015-02-04 12:25:04 【问题描述】:

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

【问题讨论】:

1.70000043572e-05 是一个合法的浮点数,就像0.0000170000043572 一样。这些“数字”是字符串还是浮点数? 这些数字是字符串 【参考方案1】:

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

【讨论】:

【参考方案2】:

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

如果是字符串,则使用内置的float 进行转换,例如:

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

会输出

4234.23

【讨论】:

你能删除 IPython 的东西吗...这会让初学者感到困惑。 仅仅调用 float 是行不通的,仍然会给出指数格式

以上是关于在python中将指数形式的数字转换为十进制形式[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何防止在 Python matplotlib 图中将数字更改为指数形式

以指数形式表示数字

[洛谷P1017] 进制转换

洛谷—— P1017 进制转换

洛谷 P1017 进制转换

负进制的转换