获取数字位数的最快方法?
我确实检测到了数字上的位数。例如,具有数字。329586
6
我所做的只是简单地将数字解析为字符串,并获取字符串长度,例如:
number.toString().length()
但是,有没有最快的方法来计算数字上的数字?我必须多次使用此方法,因此我认为使用会影响性能。toString()
谢谢。
我确实检测到了数字上的位数。例如,具有数字。329586
6
我所做的只是简单地将数字解析为字符串,并获取字符串长度,例如:
number.toString().length()
但是,有没有最快的方法来计算数字上的数字?我必须多次使用此方法,因此我认为使用会影响性能。toString()
谢谢。
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
这个自制的解决方案怎么样:
int noOfDigit = 1;
while((n=n/10) != 0) ++noOfDigit;