获取数字位数的最快方法?

2022-09-04 05:13:52

我确实检测到了数字上的位数。例如,具有数字。3295866

我所做的只是简单地将数字解析为字符串,并获取字符串长度,例如:

number.toString().length()

但是,有没有最快的方法来计算数字上的数字?我必须多次使用此方法,因此我认为使用会影响性能。toString()

谢谢。


答案 1
Math.floor(Math.log10(number) + 1)
// or just (int) Math.log10(number) + 1

例如:

int number = 123456;
int length = (int) Math.log10(number) + 1;
System.out.println(length);

输出:

6

答案 2

这个自制的解决方案怎么样:

int noOfDigit = 1;
while((n=n/10) != 0) ++noOfDigit;