Saya ingin menghapus koma dari string dan menghitung jumlah tersebut menggunakan JavaScript.
Misalnya, saya memiliki dua nilai itu:
- 100.000,00
- 500.000,00
Sekarang saya ingin menghapus koma dari string itu dan ingin total jumlahnya.
Saya ingin menghapus koma dari string dan menghitung jumlah tersebut menggunakan JavaScript.
Misalnya, saya memiliki dua nilai itu:
Sekarang saya ingin menghapus koma dari string itu dan ingin total jumlahnya.
Jawaban:
Untuk menghapus koma, Anda harus menggunakan replacepada string. Untuk mengonversi menjadi float agar Anda dapat melakukan perhitungan matematika, Anda memerlukan parseFloat:
var total = parseFloat('100,000.00'.replace(/,/g, '')) +
parseFloat('500,000.00'.replace(/,/g, ''));
Jawaban terkait, tetapi jika Anda ingin menjalankan pembersihan pengguna yang memasukkan nilai ke dalam formulir, inilah yang dapat Anda lakukan:
const numFormatter = new Intl.NumberFormat('en-US', {
style: "decimal",
maximumFractionDigits: 2
})
// Good Inputs
parseFloat(numFormatter.format('1234').replace(/,/g,"")) // 1234
parseFloat(numFormatter.format('123').replace(/,/g,"")) // 123
// 3rd decimal place rounds to nearest
parseFloat(numFormatter.format('1234.233').replace(/,/g,"")); // 1234.23
parseFloat(numFormatter.format('1234.239').replace(/,/g,"")); // 1234.24
// Bad Inputs
parseFloat(numFormatter.format('1234.233a').replace(/,/g,"")); // NaN
parseFloat(numFormatter.format('$1234.23').replace(/,/g,"")); // NaN
// Edge Cases
parseFloat(numFormatter.format(true).replace(/,/g,"")) // 1
parseFloat(numFormatter.format(false).replace(/,/g,"")) // 0
parseFloat(numFormatter.format(NaN).replace(/,/g,"")) // NaN
Gunakan tanggal internasional lokal melalui format. Ini membersihkan semua masukan yang buruk, jika ada yang mengembalikan string NaNyang dapat Anda periksa. Saat ini tidak ada cara untuk menghapus koma sebagai bagian dari lokal (mulai 10/12/19) , jadi Anda dapat menggunakan perintah regex untuk menghapus koma menggunakan replace.
ParseFloat mengubah definisi jenis ini dari string menjadi angka
Jika Anda menggunakan React, seperti inilah fungsi perhitungan Anda:
updateCalculationInput = (e) => {
let value;
value = numFormatter.format(e.target.value); // 123,456.78 - 3rd decimal rounds to nearest number as expected
if(value === 'NaN') return; // locale returns string of NaN if fail
value = value.replace(/,/g, ""); // remove commas
value = parseFloat(value); // now parse to float should always be clean input
// Do the actual math and setState calls here
}
replacedanparseFloat. berikut adalah kasus uji cepat: jsfiddle.net/TtYpH