BigInteger: подсчитать количество десятичных цифр в масштабируемом методе
Мне нужно посчитать количество десятичных цифрBigInteger
, Например:
99
возвращается2
1234
возвращается4
9999
возвращается4
12345678901234567890
возвращается20
Мне нужно сделать этодляBigInteger
с участием184948
десятичные цифры и многое другое. Как я могу сделать это быстро и масштабируемо?
преобразовать в строку подход медленный:
public String getWritableNumber(BigInteger number) {
// Takes over 30 seconds for 184948 decimal digits
return "10^" + (number.toString().length() - 1);
}
Этотпетля-перешеек-на-десять подход еще медленнее
public String getWritableNumber(BigInteger number) {
int digitSize = 0;
while (!number.equals(BigInteger.ZERO)) {
number = number.divide(BigInteger.TEN);
digitSize++;
}
return "10^" + (digitSize - 1);
}
Есть ли более быстрые методы?