use*_*478 5 python numbers decimal
python中给定一个Decimal数字,如何找到小数点后的位数?
assert digits(Decimal('1.2345')) == 4
assert digits(Decimal('1000')) == 0
assert digits(Decimal('1.00')) == 2
assert digits(Decimal('1E+5')) == 0
assert digits(Decimal('1.2E+5')) == 0
Run Code Online (Sandbox Code Playgroud)
经过一些实验,这似乎工作正常:
def digits(n):
return max(0,-n.as_tuple().exponent)
Run Code Online (Sandbox Code Playgroud)