J'ai détecté la quantité de chiffres sur un nombre. Par exemple, 329586
a 6
chiffres.
Ce que j’ai fait, c’est simplement d’analyser le nombre en chaîne et d’obtenir la longueur de la chaîne, comme ceci:
number.toString().length()
Mais existe-t-il un moyen plus rapide de compter les chiffres sur un nombre? Je dois utiliser cette méthode plusieurs fois. Je pense donc que l'utilisation de toString()
peut avoir un impact sur les performances.
Merci.
Math.floor(Math.log10(number) + 1)
// or just (int) Math.log10(number) + 1
Par exemple:
int number = 123456;
int length = (int) Math.log10(number) + 1;
System.out.println(length);
SORTIE:
6
que diriez-vous de cette solution homebrewed:
int noOfDigit = 1;
while((n=n/10) != 0) ++noOfDigit;
Essaye ça :
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);
}
}