Chcę sformatować liczbę tak, aby zawierała dwie cyfry. Problem powstaje, gdy 0
- 9
zostanie przekazany, więc muszę go sformatować do 00
- 09
.
Czy w JavaScript jest formatyzator liczb?
javascript
number-formatting
Keith Power
źródło
źródło
Odpowiedzi:
Najlepsza metoda, jaką znalazłem, jest następująca:
(Uwaga: ta prosta wersja działa tylko dla dodatnich liczb całkowitych)
W przypadku miejsc po przecinku możesz użyć tego kodu (choć jest nieco niechlujny).
Wreszcie, jeśli masz do czynienia z możliwością występowania liczb ujemnych, najlepiej przechowywać znak, zastosować formatowanie do wartości bezwzględnej liczby i ponownie zastosować znak po fakcie. Zauważ, że ta metoda nie ogranicza liczby do 2 cyfr całkowitych. Zamiast tego ogranicza tylko liczbę na lewo od miejsca po przecinku (część całkowita). (Ta linia, która określa znak został znaleziony tutaj ).
źródło
.toPrecision()
metodę w3schools.com/jsref/jsref_toprecision.aspJeśli liczba jest większa niż 9, przekonwertuj liczbę na ciąg znaków (spójność). W przeciwnym razie dodaj zero.
źródło
Użyj metody toLocaleString () w dowolnej liczbie. Tak więc dla liczby 6, jak pokazano poniżej, można uzyskać pożądane wyniki.
Wygeneruje ciąg „06”.
źródło
(6).toLocaleString(undefined, {minimumIntegerDigits: 2})
Oto prosta funkcja uzupełniania liczb, której zwykle używam. Pozwala na dowolną ilość wyściółki.
Przykłady:
źródło
We wszystkich nowoczesnych przeglądarkach możesz używać
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padStart
źródło
@ Odpowiedź Lifehacka była dla mnie bardzo przydatna; gdzie myślę, że możemy to zrobić w jednym wierszu dla liczb dodatnich
źródło
źródło
("0" + (date.getDate())).slice(-2);
Możesz to zrobić:
Przykład:
Wynik:
źródło
Wygląda na to, że możesz mieć ciąg zamiast liczby. Użyj tego:
Oto przykład: http://jsfiddle.net/xtgFp/
źródło
Szybka i brudna jedna wkładka ....
źródło
Number.prototype.leftPad = String.prototype.leftPad = function (pad) { return 0..toFixed(pad).slice(2, -this.toString().length) + this.toString(); };
Jest to proste i działa całkiem dobrze:
źródło
Oto bardzo proste rozwiązanie, które działało dla mnie dobrze.
Najpierw zadeklaruj zmienną, która będzie zawierać Twój numer.
Teraz przekonwertuj liczbę na ciąg i trzymaj ją w innej zmiennej;
Teraz możesz przetestować długość tego ciągu, jeśli jest mniej niż pożądany, możesz na początku dodać „zero”.
Teraz użyj numeru zgodnie z życzeniem
źródło
Oto najprostsze rozwiązanie, jakie znalazłem: -
źródło
Ulepszona wersja poprzedniej odpowiedzi
źródło
Wiem, że to starożytny post, ale chciałem zaoferować bardziej elastyczną opcję OO.
Trochę ekstrapolowałem zaakceptowaną odpowiedź i rozszerzyłem obiekt javascript,
Number
aby umożliwić regulację dopełniania zer:Edycja: dodaj kod, aby zapobiec odcinaniu liczb dłuższych niż żądane cyfry.
UWAGA: Jest to przestarzałe we wszystkich oprócz IE. Użyj
padStart()
zamiast tego.źródło
Nie ma wbudowanego formatyzatora liczb dla JavaScript, ale istnieją biblioteki, które to osiągają:
źródło
lub
z
źródło
Jeśli chcesz jednocześnie ograniczyć liczbę cyfr:
Spowodowałoby to również posiekanie dowolnej wartości przekraczającej dwie cyfry. Rozszerzyłem to na rozwiązanie Fanaura.
źródło
źródło
Oto proste rekurencyjne rozwiązanie, które działa dla dowolnej liczby cyfr.
źródło
Jeśli nie masz lodash w swoim projekcie, dodawanie całej biblioteki w celu korzystania z jednej funkcji będzie przesadą. To najbardziej wyrafinowane rozwiązanie twojego problemu, jakie kiedykolwiek widziałem.
źródło
Oto moja wersja. Można go łatwo dostosować do innych scenariuszy.
źródło
źródło
Dla każdego, kto chce mieć różnice czasowe i wyniki, które mogą przyjmować liczby ujemne, jest to dobre. pad (3) = „03”, pad (-2) = „-02”, pad (-234) = „-234”
źródło
za pomocą tej funkcji możesz drukować z dowolną liczbą n cyfr
źródło
mój przykład to :
źródło
`${number}`.replace(/^(\d)$/, '0$1');
Regex jest najlepszy.
źródło
Typ danych AS w JavaScript jest określany dynamicznie, traktuje 04 jako 4 Użyj instrukcji warunkowej, jeśli wartość jest mniejsza niż 10, a następnie dodaj 0 przed nią, ustawiając ciąg E.g,
źródło
Zbudowałem dość prostą funkcję formatu, którą wywołuję, gdy potrzebuję prostej daty sformatowanej. Zajmuje się formatowaniem pojedynczych cyfr na dwucyfrowe, gdy są mniejsze niż 10. Wyodrębnia datę sformatowaną jako
Sat Sep 29 2018 - 00:05:44
Ta funkcja jest używana jako część zmiennej utils, dlatego jest nazywana:
źródło
Zaktualizowano dla funkcji strzałek ES6 (obsługiwane w prawie wszystkich nowoczesnych przeglądarkach, patrz CanIUse )
źródło