估计小数位数的位数

时间:2013-09-17 14:39:51

标签: python numpy

如何估算大熊猫时间序列中使用的数字的小数位数?

e.g。对

x=[1.01,1.01,1.03]

我想要

in[0]: estimate_decimal_places(x)
out[0] : 2

e.g。对

x=[1.1,1.5,2.0]

我想要

in[0]: estimate_decimal_places(x)
out[0] : 1

2 个答案:

答案 0 :(得分:2)

def estimate_decimal_places(num):
return len(str(num).split(".")[1])    

x=[1.1,1.01,1.001]

for num in x:
    print estimate_decimal_places(num)

给出

1
2
3

答案 1 :(得分:1)

真的很难看,但它有效,应该涵盖马克指出的角落案件

def decimal_places(num):
    return max(len(('%.15f'%num).strip("0").split('.')[1]),0)

编辑:

无论如何都会失败decimal_places(90.34)。在我的机器上打印时,它会转换为90.340000000000003,然后这会产生错误的结果。

只要你没有过多推动它就可以正常工作,接受无法预测12位数以上的小数位数,例如将15替换为12以上< / p>