数字の桁数を検出しました。たとえば、_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
これを試して :
public class Main {
public static void main(String[] args) {
long num = -23;
int digits = 0;
if (num < 0)
num *= (-1);
if (num < 10 && num >= 0)
digits = 1;
else {
while(num > 0) {
num /= 10;
digits++;
}
}
System.out.println("Digits: " +digits);
}
}