switch - recorrer un numero en java
¿La forma más rápida de obtener el número de dígitos en un número? (3)
Esta pregunta ya tiene una respuesta aquí:
- Forma de obtener el número de dígitos en un int? 27 respuestas
Detecto la cantidad de dígitos en un número. Por ejemplo, 329586
tiene 6
dígitos.
Lo que hice, es simplemente analizar el número de la cadena, y obtener la longitud de la cadena, como:
number.toString().length()
Pero, ¿hay una forma más rápida de contar dígitos en un número? Tengo que usar este método varias veces, así que creo que usar toString()
puede afectar el rendimiento.
Gracias.
¿Qué tal esta solución hecha en casa?
int noOfDigit = 1;
while((n=n/10) != 0) ++noOfDigit;
Math.floor(Math.log10(number) + 1)
// or just (int) Math.log10(number) + 1
Por ejemplo:
int number = 123456;
int length = (int) Math.log10(number) + 1;
System.out.println(length);
SALIDA:
6
Prueba esto :
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);
}
}