从大量数据中,我想降低每个数字的精度,即float或int(Python3):
12345678 --> 12340000
1.2345678 --> 1.234
0.12345678 --> 0.1234
1.2345678e-05 --> 1.234e-05
但是怎么做?
答案 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]