Eine (unbekannt lange) Zahl zum Beispiel fünfstellig mit führenden Nullen zu formatieren kann kompliziert sein, denn die naheliegende Lösung: „Schauen wieviele Stellen die Zahl hat und dann die entsprechende Anzahl Nullen davorsetzen“ bedeutet einiges an kompliziertem If-Gebastel.
Hier also die einzeilen Lösung in Javascript die quasi in jeder modernen Programmiersprache ähnlich geht:
> zahl = 123 > ("00000" + zahl).slice(-5); '00123' > zahl = 1 > ("00000" + zahl).slice(-5); '00001' > zahl = 12345 > ("00000" + zahl).slice(-5); '12345'
Einfach mal die maximale Anzahl an Nullen vorne dran setzen und dann die gewünschte Länge des endgültigen Wertes von rechts her abscheiden. Simpel und einfach lesbar!
5 Antworten zu “Kurzprogrammiertipp: Zahl mit führenden Nullen formatieren”
Blöd, wenn man eine Sprache ohne printf nutzen muss, nicht?
printf("%05d",zahl);
Mein Gedanke – „Dafür gibt es doch Formatstrings oO“. Ist also nichtmal zwingend eine Eigenschaft von printf.
Allerdings hat JS tatsächlich keine echten Formatstrings und sich nur wegen sowas eine ganze library an problem ins programm zu holen ist wahrscheinlich auch nicht gut.
Für den individuellen Anwendungsfalls also eine gute Lösung. Sollten sich mehr solcher Probleme auftun würde ich drüber nachdenken die Sprache zu wechseln oder eine passende Library zu installieren.
Viele Grüße
Bernd
ECMAScript 2017 bietet eine Methode dafür: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padStart
> let zahl = 123;
> String(zahl).padStart(5, ‚0‘);
‚00123‘
Heee? Also geile Idee, aber ich dachte eiigentlich slice wäre ne Array funktion 😀
Cool, danke, hat mir sehr geholfen in meiner Google Script Anwendung!