Ich möchte eine Zahl so formatieren, dass sie zwei Ziffern hat. Das Problem wird verursacht, wenn 0
- übergeben 9
wird, daher muss es formatiert werden für 00
- 09
.
Gibt es einen Zahlenformatierer in JavaScript?
javascript
number-formatting
Keith Power
quelle
quelle
Antworten:
Die beste Methode, die ich gefunden habe, ist etwa die folgende:
(Beachten Sie, dass diese einfache Version nur für positive Ganzzahlen funktioniert.)
Für Dezimalstellen können Sie diesen Code verwenden (allerdings ist er etwas schlampig).
Wenn Sie sich mit der Möglichkeit negativer Zahlen befassen müssen, ist es am besten, das Vorzeichen zu speichern, die Formatierung auf den absoluten Wert der Zahl anzuwenden und das Vorzeichen nachträglich erneut anzuwenden. Beachten Sie, dass diese Methode die Anzahl nicht auf insgesamt 2 Ziffern beschränkt. Stattdessen wird nur die Zahl links von der Dezimalstelle (der ganzzahlige Teil) eingeschränkt. (Die Linie, die das Zeichen bestimmt, wurde hier gefunden ).
quelle
.toPrecision()
Methode w3schools.com/jsref/jsref_toprecision.aspWenn die Zahl höher als 9 ist, konvertieren Sie die Zahl in eine Zeichenfolge (Konsistenz). Andernfalls fügen Sie eine Null hinzu.
quelle
Verwenden Sie die toLocaleString () -Methode in einer beliebigen Anzahl. Für die Nummer 6, wie unten gezeigt, können Sie die gewünschten Ergebnisse erzielen.
Erzeugt die Zeichenfolge '06'.
quelle
(6).toLocaleString(undefined, {minimumIntegerDigits: 2})
Hier ist eine einfache Funktion zum Auffüllen von Zahlen, die ich normalerweise verwende. Es ermöglicht jede Menge Polsterung.
Beispiele:
quelle
In allen modernen Browsern können Sie verwenden
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padStart
quelle
@ Lifehacks Antwort war sehr nützlich für mich; wo ich denke, wir können es in einer Zeile für positive Zahlen tun
quelle
quelle
("0" + (date.getDate())).slice(-2);
Du kannst tun:
Beispiel:
Ergebnis:
quelle
Es scheint, dass Sie eine Zeichenfolge anstelle einer Zahl haben. benutze das:
Hier ist ein Beispiel: http://jsfiddle.net/xtgFp/
quelle
Schneller und schmutziger Einzeiler ....
quelle
Number.prototype.leftPad = String.prototype.leftPad = function (pad) { return 0..toFixed(pad).slice(2, -this.toString().length) + this.toString(); };
Das ist einfach und funktioniert ziemlich gut:
quelle
Hier ist eine sehr einfache Lösung, die für mich gut funktioniert hat.
Deklarieren Sie zuerst eine Variable, die Ihre Nummer enthält.
Konvertieren Sie nun die Zahl in eine Zeichenfolge und halten Sie sie in einer anderen Variablen.
Jetzt können Sie die Länge dieser Zeichenfolge testen. Wenn sie kleiner als gewünscht ist, können Sie am Anfang eine 'Null' anhängen.
Verwenden Sie nun die gewünschte Nummer
quelle
Hier ist die einfachste Lösung, die ich gefunden habe:
quelle
Verbesserte Version der vorherigen Antwort
quelle
Ich weiß, dass dies ein alter Beitrag ist, aber ich wollte eine flexiblere und OO-Lösungsoption anbieten.
Ich habe die akzeptierte Antwort ein wenig extrapoliert und das Javascript-
Number
Objekt erweitert, um eine einstellbare Null-Auffüllung zu ermöglichen:Bearbeiten: Fügen Sie Code hinzu, um zu verhindern, dass Zahlen länger als die angeforderten Ziffern abgeschnitten werden.
HINWEIS: Dies ist in allen außer IE veraltet. Verwenden Sie
padStart()
stattdessen.quelle
Es gibt keinen integrierten Zahlenformatierer für JavaScript, aber es gibt einige Bibliotheken, die dies erreichen:
quelle
oder
mit
quelle
Wenn Sie Ihre Ziffern gleichzeitig begrenzen möchten:
Dies würde auch jeden Wert abschneiden, der zwei Stellen überschreitet. Ich habe dies auf die Lösung von Fanaur erweitert.
quelle
quelle
Hier ist eine einfache rekursive Lösung, die für eine beliebige Anzahl von Ziffern funktioniert.
quelle
Wenn Sie kein Lodash in Ihrem Projekt haben, ist es ein Overkill, die gesamte Bibliothek hinzuzufügen, um nur eine Funktion zu verwenden. Dies ist die raffinierteste Lösung Ihres Problems, die ich je gesehen habe.
quelle
Hier ist meine Version. Kann leicht an andere Szenarien angepasst werden.
quelle
quelle
Für alle, die Zeitunterschiede und Ergebnisse haben möchten, die negative Zahlen annehmen können, ist dies eine gute Sache. Pad (3) = "03", Pad (-2) = "-02", Pad (-234) = "-234"
quelle
Mit dieser Funktion können Sie mit beliebigen n Ziffern drucken
quelle
Mein Beispiel wäre :
quelle
`${number}`.replace(/^(\d)$/, '0$1');
Regex ist das Beste.
quelle
AS-Datentypen in Javascript werden dynamisch bestimmt. Es behandelt 04 als 4. Verwenden Sie eine bedingte Anweisung, wenn der Wert kleiner als 10 ist, und fügen Sie 0 hinzu, indem Sie die Zeichenfolge z .
quelle
Ich habe eine ziemlich einfache Formatierungsfunktion erstellt, die ich aufrufe, wenn ich ein einfaches Datumsformat benötige. Es befasst sich mit der Formatierung einzelner Ziffern in zweistellige Ziffern, wenn diese kleiner als 10 sind. Es wird ein Datum ausgegeben, das als formatiert ist
Sat Sep 29 2018 - 00:05:44
Diese Funktion wird als Teil einer utils-Variablen verwendet und heißt daher:
quelle
Aktualisiert für ES6- Pfeilfunktionen (Wird in fast allen modernen Browsern unterstützt, siehe CanIUse )
quelle