将负面科学记数法1.3E-2转换为浮动?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将负面科学记数法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
答案
1.3e-8
是一个浮点文字(即它直接创建一个float
对象),所以你不需要将它包装在float()
中。 Python shell只返回float的默认字符串表示形式。要强制使用定点表示法,可以使用str.format()
,尽管您可能需要指定精度:
>>> '{:.9f}'.format(1.3e-8)
'0.000000013'
另一答案
它已经是一个浮点数,它只是用科学记数法表示
print(type(1.3e8)) # <class 'float'>
print(type(1.3e-8)) # <class 'float'>
print(0.000000013) # 1.3e-08
另一答案
以下函数处理任意数量的浮点。
def displayfloat(x):
# format numbers > 1.
if str(x).find('+') > -1:
return '{:.1f}'.format(x)
e_idx = str(x).find('e')
# format numbers > 1e-05
if e_idx == -1:
return str(x)
# format numbers < 1e-05
minus_idx = str(x).find('-')
shift = e_idx
if str(x).find('.') > -1:
shift -= 1
decimalpoints = -int(str(x)[str(x).find('-'):]) - 1 + shift
floatformat = '{:.'+str(decimalpoints)+'f}'
return floatformat.format(x)
# exmaples
displayfloat(1e-5) # --> '0.00001'
displayfloat(1.1e-5) # --> '0.000011'
displayfloat(1e+5) # --> '100000.0'
以上是关于将负面科学记数法1.3E-2转换为浮动?的主要内容,如果未能解决你的问题,请参考以下文章
在 Bigquery 中的 sum() 之后将科学记数法转换为浮点数
Pandas / 如何将存储为字符串的科学记数法转换为浮点数?
无法将整数强制转换为android.support.design.widget.FloatingActionButton