Saya ingin memformat angka untuk memiliki dua digit. Masalahnya disebabkan ketika 0
- 9
disahkan, jadi saya perlu diformat ke 00
-09
.
Apakah ada pemformat angka dalam JavaScript?
javascript
number-formatting
Keith Power
sumber
sumber
Jawaban:
Metode terbaik yang saya temukan adalah sesuatu seperti berikut:
(Perhatikan bahwa versi sederhana ini hanya berfungsi untuk bilangan bulat positif)
Untuk desimal, Anda bisa menggunakan kode ini (agak ceroboh).
Terakhir, jika Anda harus berurusan dengan kemungkinan angka negatif, yang terbaik adalah menyimpan tanda, menerapkan pemformatan ke nilai absolut nomor tersebut, dan mengajukan kembali tanda setelah fakta. Perhatikan bahwa metode ini tidak membatasi jumlah hingga 2 digit total. Sebaliknya itu hanya membatasi angka di sebelah kiri desimal (bagian bilangan bulat). (Garis yang menentukan tanda ditemukan di sini ).
sumber
.toPrecision()
metode w3schools.com/jsref/jsref_toprecision.aspJika angkanya lebih tinggi dari 9, konversikan angkanya menjadi string (konsistensi). Kalau tidak, tambahkan nol.
sumber
Gunakan metode toLocaleString () di nomor apa pun. Jadi untuk angka 6, seperti terlihat di bawah, Anda bisa mendapatkan hasil yang diinginkan.
Akan menghasilkan string '06'.
sumber
(6).toLocaleString(undefined, {minimumIntegerDigits: 2})
Berikut adalah fungsi nomor padding sederhana yang saya gunakan biasanya. Ini memungkinkan jumlah padding.
Contoh:
sumber
Di semua browser modern yang dapat Anda gunakan
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padStart
sumber
Jawaban @ Lifehack sangat berguna bagi saya; di mana saya pikir kita bisa melakukannya dalam satu baris untuk angka positif
sumber
sumber
("0" + (date.getDate())).slice(-2);
Anda dapat melakukan:
Contoh:
Hasil:
sumber
Tampaknya Anda mungkin memiliki string, bukan angka. Gunakan ini:
Berikut ini contohnya: http://jsfiddle.net/xtgFp/
sumber
Satu liner cepat dan kotor ....
sumber
Number.prototype.leftPad = String.prototype.leftPad = function (pad) { return 0..toFixed(pad).slice(2, -this.toString().length) + this.toString(); };
Ini sederhana dan bekerja dengan cukup baik:
sumber
Berikut adalah solusi yang sangat sederhana yang bekerja dengan baik untuk saya.
Pertama mendeklarasikan variabel untuk menyimpan nomor Anda.
Sekarang, konversikan nomor tersebut menjadi string dan tahan di variabel lain;
Sekarang Anda dapat menguji panjang string ini, jika kurang dari yang diinginkan, Anda dapat menambahkan 'nol' di awal.
Sekarang gunakan nomor yang diinginkan
sumber
Inilah solusi termudah yang saya temukan: -
sumber
Versi peningkatan dari jawaban sebelumnya
sumber
Saya tahu ini adalah pos kuno, tetapi saya ingin memberikan opsi solusi yang lebih fleksibel dan OO.
Saya telah mengekstrapolasi jawaban yang diterima sedikit dan memperluas objek javascript
Number
untuk memungkinkan padding nol yang dapat disesuaikan:Edit: Tambahkan kode untuk mencegah terpotongnya angka lebih lama dari angka yang Anda minta.
CATATAN: Ini sudah usang di semua kecuali IE. Gunakan
padStart()
sebagai gantinya.sumber
Tidak ada pemformat angka bawaan untuk JavaScript, tetapi ada beberapa perpustakaan yang melakukannya:
sumber
atau
dengan
sumber
Jika Anda ingin membatasi angka Anda secara bersamaan:
Ini juga akan memotong nilai apa pun yang melebihi dua digit. Saya telah memperluas ini pada solusi fanaur.
sumber
sumber
Berikut ini adalah solusi rekursif sederhana yang berfungsi untuk sejumlah digit.
sumber
Jika Anda tidak memiliki lodash di proyek Anda, akan berlebihan jika menambahkan seluruh perpustakaan hanya untuk menggunakan satu fungsi. Ini adalah solusi paling rumit dari masalah Anda yang pernah saya lihat.
sumber
Ini versiku. Dapat dengan mudah disesuaikan dengan skenario lain.
sumber
sumber
Bagi siapa pun yang ingin memiliki perbedaan waktu dan memiliki hasil yang dapat mengambil angka negatif di sini adalah yang baik. pad (3) = "03", pad (-2) = "-02", pad (-234) = "-234"
sumber
dengan fungsi ini Anda dapat mencetak dengan n digit apa pun yang Anda inginkan
sumber
contoh saya adalah :
sumber
`${number}`.replace(/^(\d)$/, '0$1');
Regex adalah yang terbaik.
sumber
SEBAGAI datatype dalam Javascript ditentukan secara dinamis itu memperlakukan 04 sebagai 4. Gunakan pernyataan bersyarat jika nilainya lebih rendah dari 10 kemudian tambahkan 0 sebelum itu dengan membuatnya string E.g,
sumber
Saya membangun fungsi format yang cukup sederhana yang saya panggil kapan pun saya membutuhkan tanggal sederhana yang diformat. Ini berurusan dengan memformat satu digit menjadi dua digit ketika mereka kurang dari 10. Ini menentukan tanggal yang diformat sebagai
Sat Sep 29 2018 - 00:05:44
Fungsi ini digunakan sebagai bagian dari variabel utils sehingga disebut sebagai:
sumber
Fungsi Panah ES6 Diperbarui (Didukung di hampir semua browser modern, lihat CanIUse )
sumber