Saya memiliki kode berikut. Saya ingin memilikinya sehingga jika price_result sama dengan integer, katakanlah 10, maka saya ingin menambahkan dua tempat desimal. Jadi 10 akan menjadi 10.00. Atau jika sama dengan 10,6 akan menjadi 10,60. Tidak yakin bagaimana melakukan ini.
price_result = parseFloat(test_var.split('$')[1].slice(0,-1));
javascript
floating-point
pengguna357034
sumber
sumber
var twoPlacedFloat = + parseFloat(yourString).toFixed(2)
untuk mengonversi ke floatSaat Anda menggunakannya
toFixed
, selalu mengembalikan nilai sebagai string. Ini terkadang menyulitkan kode. Untuk menghindari itu, Anda dapat membuat metode alternatif untuk Angka.dan gunakan:
atau hanya:
sumber
0.1 + 0.2 // 0.30000000000000004
jadi saya perlu koreksi untuk itu(0.1+0.2).round() // 0.3
Jika Anda membutuhkan kinerja (seperti dalam game):
Ini sekitar 100 kali lebih cepat dari parseFloat (number.toFixed (2))
http://jsperf.com/parsefloat-tofixed-vs-math-round
sumber
number * 1
apakah saya melewatkan sesuatu mungkin 🤔?Untuk mengembalikan nomor, tambahkan lapisan tanda kurung lain. Tetap bersihkan.
sumber
var twoPlacedFloat = parseFloat(('2.00').toFixed(2))
menghasilkan kesalahan.Jika tujuan Anda adalah untuk menguraikan, dan masukan Anda mungkin literal, maka Anda akan mengharapkan
float
dantoFixed
tidak akan menyediakannya, jadi di sini ada dua fungsi sederhana untuk menyediakan ini:sumber
parseFloat(parseFloat('10.5').toFixed(2))
kembali10.5
diperiksa10.50
. JugaparseFloat(parseFloat('10.50').toFixed(2))
kembali10.5
langit-langit dari lodash mungkin yang terbaik
akan bekerja juga dengan angka dan aman
sumber
@ sd Jawaban Singkat: Tidak ada cara di JS untuk memiliki nilai datatype angka dengan membuntuti nol setelah desimal.
Jawaban Panjang: Ini adalah properti dari
toFixed
atautoPrecision
fungsi JavaScript, untuk mengembalikan String. Alasan untuk ini adalah bahwa datatype Number tidak dapat memiliki nilai seperti a = 2.00, itu akan selalu menghapus nol setelah desimal, Ini adalah properti inbuilt dari Number Datatype. Jadi untuk mencapai hal di atas dalam JS kita punya 2 opsisumber
Silakan gunakan fungsi di bawah ini jika Anda tidak ingin mengakhiri.
sumber
Untuk apa nilainya: Angka desimal, adalah angka desimal, Anda membulatkannya ke nilai lain atau tidak. Secara internal, itu akan mendekati fraksi desimal sesuai dengan aturan arthmetic dan handling floating point. Itu tetap angka desimal (floating point, dalam JS a double) secara internal, tidak peduli berapa banyak angka yang ingin Anda tampilkan.
Untuk menyajikannya untuk ditampilkan, Anda dapat memilih presisi tampilan untuk apa pun yang Anda inginkan dengan konversi string. Presentasi adalah masalah tampilan, bukan hal penyimpanan.
sumber
Anda dapat menggunakan .toFixed () untuk untuk float value 2 digit
Exampale
sumber
Coba ini (lihat komentar dalam kode):
sumber
JavaScript sederhana, string untuk melayang:
sumber
Solusi yang bekerja untuk saya adalah sebagai berikut
sumber
Inisialisasi FormArray form Builder
Buat Formulir
Tetapkan Nilai Formulir ke Pengontrol Formulir
sumber
Saya punya solusi lain.
Anda dapat menggunakannya
round()
untuk melakukan itutoFixed()
sumber
parseFloat()
saya memperbarui jawabannya oleh @zsalzbankround()
pada angka dalam js. Pertanyaan sebenarnya adalah siapa yang mengangkat ini.