如何估算大熊猫时间序列中使用的数字的小数位数?
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
答案 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>