PHP - Get-Länge der Ziffern einer Zahl
Ich würde gerne Fragen, wie kann ich die Länge von Ziffern in eine Zahl. Zum Beispiel:
$num = 245354;
$numlength = mb_strlen($num);
$numlength
6 in diesem Beispiel. Irgendwie kann ich es nicht verwalten, um zu arbeiten?
Dank
EDIT: Der Beispiel-code oben --^ und Ihre jeweiligen Methode mb_strlen();
funktioniert Prima.
Wie funktioniert es nicht? Welche Ergebnisse erhalten Sie?
Stattdessen geben viele Lösungen, jemand habe eine Idee, "Warum DIESER code nicht funktioniert ?". Da der code sollte funktionieren.
Der gepostet code funktioniert wie ein Charme!
Stattdessen geben viele Lösungen, jemand habe eine Idee, "Warum DIESER code nicht funktioniert ?". Da der code sollte funktionieren.
Der gepostet code funktioniert wie ein Charme!
InformationsquelleAutor supersize | 2015-02-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vielleicht:
bessere Lösung ist die Verwendung von log (), dann brauchen Sie nicht zu casten zu einem string.
Verwenden mathematische Funktionen wie
log()
ist unlesbar für mich. Ich glaube, dass Programmierer != MathematikerInformationsquelleAutor Sergei Gorjunov
Einige mathematische irgendwann hilft. Alles, was Sie brauchen, ist zum aufrufen
floor(log10($num) + 1)
mit check-für 0.Im Grunde tut es der Logarithmus mit der Basis 10 macht dann Stock es und fügt 1.
was würde es bewirken? Ich habe gerade überprüft es mit PHP7 und es funktioniert.
Vielleicht hast du ja falsch mit dem test. Ich habe gerade getestet, mit vielen PHP-Versionen (auch PHP4) mit zwei online-PHP-Tester; für den Wert null, wird der Ausgang -INF. Um sicher zu sein, versuchen Sie es log10(0) === -INF; die Antwort wäre 1.
Ich sehe jetzt, ich habe dich nicht verstehen, ich werde Bearbeiten Sie die Antwort, Dank
Der Dritte Ausdruck in der ternäre operator würde 1, nicht 0 ist; wegen 0 1-stellig!
InformationsquelleAutor Robert
Elegantere Art und Weise 🙂
$num = 10;
und es wird nicht funktionieren 🙂Wie Robert schon sagte, es funktioniert nicht für alle 10 ^ n Anzahl Serie (n >= 0). Null wird nicht funktionieren, auch!
InformationsquelleAutor Halayem Anis
Könnte man auch verwenden, einige grundlegende Mathematik!
InformationsquelleAutor Carlos Vergara
Nur mit einer version
(int)(log($num,10)+1)
fehlschlägt, für 10, 100, 1000, etc. Es zählt die Zahl 10 als 1-stellig, 100 als zwei Ziffern, etc. Es auch nicht mit 0 oder jede negative Zahl.Wenn Sie müssen, verwenden Sie den Mathematik - (und die Zahl ist nicht-negativ), zu verwenden:
$numlength = (int)(log($num+1, 10)+1);
Oder für eine mathematische Lösung, die zählt die Ziffern in positiven ODER negativen zahlen:
$numlength = ($num>=0) ? (int)(log($num+1, 10)+1) : (int)(log(1-$num, 10)+1);
Aber die strlen-Lösung ist nur in etwa so schnell in PHP.
InformationsquelleAutor Jamie Ciocco
Folgende Funktion für die Arbeit entweder Integer oder floats (Kommentare Lesen für mehr info):
Empfehle ich Ihnen, mit PHP7, es ist kürzer und sauberer.
Hoffe, es hilft!
InformationsquelleAutor MAChitgarha