Saya ingin menampilkan angka ke 2 tempat desimal.
Saya pikir saya bisa menggunakan toPrecision(2)
JavaScript.
Namun, jika angkanya 0.05
, saya dapatkan 0.0500
. Saya lebih suka tetap sama.
Lihat di JSbin .
Apa cara terbaik untuk melakukan ini?
Saya bisa memikirkan pengkodean beberapa solusi, tetapi saya membayangkan (saya harap) sesuatu seperti ini ada di dalamnya?
Anda bisa melakukannya dengan
toFixed
fungsinya, tetapi bermasalah di IE . Jika Anda menginginkan solusi yang andal, lihat jawaban saya di sini .sumber
float_num.toFixed(2);
berfungsi dengan baik)Coba
toFixed
alih-alihtoPrecision
.sumber
Tidak tahu bagaimana saya sampai ke pertanyaan ini, tetapi bahkan jika sudah bertahun-tahun sejak pertanyaan ini diajukan, saya ingin menambahkan metode cepat dan sederhana yang saya ikuti dan tidak pernah mengecewakan saya:
sumber
parseFloat()
disana? Seharusnya hanya digunakan jika nomor tersebut berasal dari string.function round(value, decimals) { return Number(Math.round(value+'e'+decimals)+'e-'+decimals); }
Jawabannya mengikuti tautan ini: http://www.jacklmoore.com/notes/rounding-in-javascript/
sumber
number.parseFloat(2)
berfungsi tetapi mengembalikan string.Jika Anda ingin mempertahankannya sebagai tipe angka, Anda dapat menggunakan:
Math.round(number * 100) / 100
sumber
Anda dapat mencoba mencampur
Number()
dantoFixed()
.Minta nomor target Anda dikonversi ke string yang bagus dengan digit X lalu konversi string yang telah diformat menjadi angka.
Number( (myVar).toFixed(2) )
Lihat contoh di bawah ini:
sumber
dan inilah sintaksnya
argumen digit adalah opsional dan secara default adalah 0. Dan tipe kembalinya adalah string bukan angka. Tetapi Anda dapat mengonversinya menjadi angka menggunakan
Itu juga bisa melempar pengecualian seperti
TypeError
,RangeError
Berikut ini detail lengkap dan kompatibilitas di browser.
sumber
sumber
Saya telah membuat fungsi ini. Ini berfungsi dengan baik tetapi mengembalikan string.
sumber