Blo*_*ura 11 java string math int numbers
我已经检测到一个数字的位数.例如,329586有6数字.
我所做的,只是将数字解析为字符串,并获取字符串长度,如:
number.toString().length()
Run Code Online (Sandbox Code Playgroud)
但是,有一种最快的方法来计算数字上的数字吗?我必须多次使用这种方法,所以我认为使用toString()会影响性能.
谢谢.
Eng*_*uad 37
Math.floor(Math.log10(number) + 1)
// or just (int) Math.log10(number) + 1
Run Code Online (Sandbox Code Playgroud)
例如:
int number = 123456;
int length = (int) Math.log10(number) + 1;
System.out.println(length);
Run Code Online (Sandbox Code Playgroud)
OUTPUT:
6
Run Code Online (Sandbox Code Playgroud)
这个自制解决方案怎么样:
int noOfDigit = 1;
while((n=n/10) != 0) ++noOfDigit;
Run Code Online (Sandbox Code Playgroud)