Saya memiliki dua string yang hanya berisi angka:
var num1 = '20',
num2 = '30.5';
Saya berharap bahwa saya bisa menambahkan mereka bersama-sama, tetapi mereka sedang disatukan:
num1 + num2; // = '2030.5'
Bagaimana saya bisa memaksa string ini diperlakukan sebagai angka?
javascript
Andrew
sumber
sumber
Dokumen MDN untuk parseInt
Dokumen MDN untuk parseFloat
Dalam parseInt radix ditetapkan sebagai sepuluh sehingga kita berada di basis 10. Dalam javascript nonstrik, angka yang diawali dengan
0
diperlakukan sebagai oktal. Ini jelas akan menyebabkan masalah!Juga lihat jawaban ChaosPandion untuk pintasan yang bermanfaat menggunakan operator unary . Saya telah membuat biola untuk menunjukkan perilaku yang berbeda.
http://jsfiddle.net/EtX6G/
sumber
+num1 + +num2
lebih pendek, bisa dibilang lebih elegan. Pada dasarnya+
operator unary dikonversi keNumber
Saya akan merekomendasikan untuk menggunakan operator plus unary, untuk memaksa string akhirnya diperlakukan sebagai angka, di dalam tanda kurung untuk membuat kode lebih mudah dibaca seperti berikut:
Jadi, dalam kasus Anda:
sumber
sumber
mengonversi string menjadi
floats
denganparseFloat(string)
atauintegers
denganparseInt(string)
sumber
parseInt(string, 10)
lihat developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…Jika Anda perlu menambahkan dua string bersamaan yang jumlahnya sangat besar, Anda perlu mengevaluasi penambahan pada setiap posisi string:
sumber
Anda dapat menggunakan ini untuk menambahkan nomor:
sumber
mencoba
atau, tergantung pada kebutuhan Anda:
http://www.javascripter.net/faq/convert2.htm
Anda mungkin ingin mengambil buku Javascript: The Good Parts , oleh Douglas Crockford. Javascript memiliki koleksi gotcha yang cukup besar! Buku ini jauh menuju klarifikasi mereka. Lihat juga
dan esai luar biasa Mr. Crockford, Javascript: Bahasa Pemrograman yang Paling Banyak Disalahpahami di Dunia .
sumber
Saya selalu mengurangi nol.
Memang metode operator unary adalah satu karakter kurang, tetapi tidak semua orang tahu apa operator unary atau bagaimana mencari tahu google ketika mereka tidak tahu apa namanya.
sumber
Jika Anda ingin melakukan operasi dengan angka sebagai string (seperti dalam kasus di mana angka lebih besar dari 64bits bisa tahan) Anda dapat menggunakan perpustakaan bilangan bulat besar .
sumber
Di sini, Anda memiliki dua opsi untuk melakukan ini: -
.
Sekarang saya akan menunjukkan kepada Anda di sini dengan bantuan contoh (Temukan jumlah dari dua angka).
Menggunakan operator plus unary
Menggunakan pendekatan parsing-
sumber
sumber
Anda bisa menggunakan
parseInt
untuk mengurai string ke angka. Agar aman dari segala hal, selalu sampaikan10
argumen kedua untuk menguraikan dalam basis 10.sumber
Pastikan Anda melengkapi jawaban akhir Anda menjadi kurang dari 16 tempat desimal untuk pelampung karena skrip java bermasalah.
Misalnya 5 - 7.6 = -2.5999999999999996
sumber
@ cr05s19xx menyarankan pada pertanyaan duplikat:
JavaScript agak lucu dalam hal angka dan penambahan.
Memberi yang berikut ini
'20' - '30' = 10; // mengembalikan 10 sebagai angka '20' + '30' = '2030'; // Mengembalikannya sebagai string. Nilai yang dikembalikan dari document.getElementById adalah string, jadi lebih baik untuk menguraikan semuanya (bahkan yang berfungsi) ke angka, sebelum melanjutkan dengan penambahan atau pengurangan. Kode Anda dapat:
sumber
Gunakan
parseFloat
metode untuk mengurai string menjadi angka floating point:sumber
Saya menggunakan ini dalam proyek saya. Saya menggunakan tanda + untuk memperlakukan string sebagai angka (dalam variabel with_interesst)
Semoga ini bisa membantu
sumber
Bekerja dalam kasus saya, jika Anda mengalami masalah yang sama seperti saya dan tidak dapat menemukan solusi untuk kasus itu dan menemukan pertanyaan SO ini.
Maaf untuk sedikit di luar topik, tetapi karena saya baru tahu bahwa ini berfungsi, saya pikir mungkin layak untuk dibagikan.
Tidak tahu apakah ini solusi kotor, atau benar-benar sah.
sumber
Anda dapat menggunakan seperti ini:
Ketika menerapkan * 1 dalam num1, konversikan angka.
jika num1 berisi huruf atau koma, kembalikan NaN dikalikan dengan 1
jika num1 adalah nol, num1 mengembalikan 0
Salam!!!
sumber
Coba ini jika Anda mencari kode Javascript sederhana dan ingin menggunakan dua kotak input dan menambahkan angka dari dua nilai. Ini kodenya.
untuk lebih jelasnya silakan kunjungi http://informativejavascript.blogspot.nl/2012/12/javascript-basics.html
sumber