PHP - Obtenir la longueur de chiffres dans un nombre
Je voudrais vous demander comment je peux obtenir la longueur de chiffres dans un nombre Entier. Par exemple:
$num = 245354;
$numlength = mb_strlen($num);
$numlength
devrait être de 6 dans cet exemple. De toute façon je ne peux pas gérer à travail?
Grâce
EDIT: L'exemple de code ci-dessus --^ et sa méthode mb_strlen();
fonctionne très bien.
- Comment est-il pas de travail? Quels résultats obtenez-vous?
- Au lieu de donner de nombreuses solutions, quelqu'un a une idée à propos de "Pourquoi CE code ne fonctionne pas ?". Parce que le code devrait fonctionner.
- Posté le code travaux comme un charme!
Vous devez vous connecter pour publier un commentaire.
Peut-être:
log()
est illisible pour moi. Je crois que programmeur != mathématicienDe maths parfois aide. Tout ce dont vous avez besoin est d'invoquer
floor(log10($num) + 1)
avec rechercher 0.Au fond ce n'est le logarithme de base 10 puis rend l'étage de et ajoute 1.
Façon plus élégante 🙂
$num = 10;
et ça ne marchera pas 🙂Vous pouvez également utiliser quelques notions de mathématiques de base!
Simplement à l'aide d'une version de
(int)(log($num,10)+1)
échoue pour 10, 100, 1000, etc. Il compte le nombre 10 comme 1 chiffre, 100 que deux chiffres, etc. Il échoue aussi à 0 ou à un nombre négatif.Si vous devez utiliser des mathématiques (et le nombre est non-négatif), utilisez:
$numlength = (int)(log($num+1, 10)+1);
Ou pour une solution mathématique qui compte le nombre de chiffres dans les nombres positifs OU négatifs:
$numlength = ($num>=0) ? (int)(log($num+1, 10)+1) : (int)(log(1-$num, 10)+1);
Mais le strlen solution est à peu près aussi rapide en PHP.
La fonction suivante de travail, soit des entiers ou des flottants (lire les commentaires pour plus d'infos):
Je vous recommandons d'utiliser PHP7, c'est plus court et plus.
Espère que cela aide!
En PHP types sont vaguement défini et deviné, si vous voulez voir quelque chose comme une chaîne de caractères si c'est un entier, float, et (je n'ai pas essayé ce) bool puis @Gorjunav est le plus de la réponse correcte.
Réinitialiser la variable comme une chaîne
Ensuite, vous pouvez aller rien chaîne connexes que vous voulez avec elle! Et vice-versa pour la modification d'une chaîne de type int
et ainsi de suite...