在Python中,如何找到整数中的位数?


当前回答

>>> a=12345
>>> a.__str__().__len__()
5

其他回答

coin_digit = str(coin_fark).split(".")[1]
coin_digit_len = len(coin_digit)
print(coin_digit_len)

如果你想要一个整数的长度等于这个整数的位数,你总是可以把它转换成字符串,比如str(133),然后像len(str(123))一样找到它的长度。

>>> a=12345
>>> a.__str__().__len__()
5

一种快速的解决方案,它使用floor(log10(n))的自我修正实现,基于“更好的方法来计算整数n和b的log(n,b)的floor ?”

import math

def floor_log(n, b):
    res = math.floor(math.log(n, b))
    c = b**res
    return res + (b*c <= n) - (c > n)

def num_digits(n):
    return 1 if n == 0 else 1 + floor_log(abs(n), 10)

这非常快,只要n < 10**(2**52)(这非常非常大)就可以工作。

您可以使用以下解决方案:

n = input("Enter number: ")
print(len(n))
n = int(n)