降低float和int的精度

时间:2019-10-22 08:39:22

标签: python-3.x

从大量数据中,我想降低每个数字的精度,即float或int(Python3):

12345678 --> 12340000
1.2345678 --> 1.234
0.12345678 --> 0.1234
1.2345678e-05 --> 1.234e-05

但是怎么做?

1 个答案:

答案 0 :(得分:1)

一种方法是使用log10检测最高位数:

a=[12345678, 1.2345678, 0.12345678, 1.2345678e-05]
b=[math.pow(10,int(-math.log10(x))+4) for x in a]
c=[int(x*y)/y for x,y in zip(a,b)]
然后

c等于[12345000.0, 1.2345, 0.12345, 1.2345e-05]