def ndigits(n):
y=n-int(n)
print(y)
#y = 0.45600000000000307 ! it should be 0.456
after=0
while(y!=0):
#print(y)
y=y*10
y=y-int(y)
after +=1
print("number of digits after decimal point=",after)
ndigits(123.456)
结果: 小数点后的位数= 46 应该是3!