Python:浮点数在" e"之前得到部分

时间:2016-06-17 10:51:02

标签: python arrays floating-point

我正在使用Python进行一些计算。在一个步骤中,将有一个看起来像

的数组
[1.23e-21, 2.32e-14, 8.87e-12, .....]

我只想在e..之前获取该部分,即我想获得数组

[1.23, 2.32, 8.87,.....]

有没有办法做到这一点?

2 个答案:

答案 0 :(得分:4)

可能有很多解决方案之一:

from math import floor, log10

x = [1.23e-21, 2.32e-14, 8.87e-12, 1.51, 1.214e10]

res = [t/10**floor(log10(abs(t))) if t!= 0 else 0 for t in x]

答案 1 :(得分:2)

您可以将条目转换为字符串并将其拆分为e。将它与列表理解相结合,你得到:

numbers = [1.23e-21, 2.32e-14, 8.87e-12]  

result = [float(str(i).split('e')[0]) for i in numbers] 

如果你的所有数字都有两个小数位,你可以使用切片运算符来表示字符串和列表理解:

result = [float(str(i)[:4]) for i in numbers]