首页 > 解决方案 > 将负科学记数法 1.3E-2 转换为浮点数?

问题描述

我知道我可以将科学计数法中的数字转换为浮点数,float如下所示:

>>> x = 1.3e8
>>> float(x)
130000000.0

那么,为什么我不能用负指数做同样的事情呢?

>>> x = 1.3e-8
>>> x
1.3e-08
>>> float(x)
1.3e-08

我本来希望float(x)在最后一种情况下给0.000000013

标签: pythonfloating-pointscientific-notation

解决方案


1.3e-8是一个浮点文字(即它直接创建一个float对象),所以你不需要将它包装在float(). Python shell 只返回一个浮点数的默认字符串表示。要强制使用定点表示法,您可以使用str.format(),但您可能需要指定精度:

>>> '{:.9f}'.format(1.3e-8)
'0.000000013'

推荐阅读