Baru-baru ini, saya memiliki masalah aneh ketika mengembangkan proyek, parseInt (0.0000005) === 5. Biasanya, output 0 benar, tetapi mengapa 5? Mari kita telusuri masalah ini bersama-sama.
Pertama-tama, kapan Anda biasanya menggunakan parseInt? Sebagian besar waktu, kami menggunakannya untuk mengurai string dan mengembalikan bagian integernya . Dengan pertanyaan ini, mari kita lihat metode parseInt.
Fungsi parseInt(string, radix) mem-parsing argumen string dan mengembalikan bilangan bulat dari radix yang ditentukan (basis dalam sistem angka matematika).
Sintaksis
parseInt(string)
parseInt(string, radix)
parseInt('0.5') // 0
parseInt('0.5') // 0
parseInt('0.05') // 0
parseInt('0.005') // 0
parseInt('0.0005') // 0
parseInt('0.00005') // 0
parseInt('0.000005') // 0
parseInt('015') // 15
parseInt('015', 8) // 13
parseInt('15px', 10) // 15
Ketika parameter pertama parseInt adalah angka, bagaimana cara mengurainya?
Kebenarannya parseInt(0.0000005) === 5juga ada di sini...
stringMari kita periksa nilai berbasis string menggunakan fungsi String untuk melihat apa output untuk masing-masing ini:
String(0.5); // => '0.5'
String(0.05); // => '0.05'
String(0.005); // => '0.005'
String(0.0005); // => '0.0005'
String(0.00005); // => '0.00005'
String(0.000005); // => '0.000005'
String(0.0000005); // => '5e-7' pay attention here
Jadi, itu berarti ketika kita menggunakan parseInt(0.0000005), itu sama dengan parseInt('5e-7')dan berdasarkan definisi:
parseInt hanya dapat menginterpretasikan bagian awal string sebagai nilai integer; itu mengabaikan unit kode apa pun yang tidak dapat ditafsirkan sebagai bagian dari notasi bilangan bulat, dan tidak ada indikasi yang diberikan bahwa unit kode tersebut diabaikan.
parseInt(0.0000005)
parseInt('5e-7') // 5
Fungsi Math.floor() berikut direkomendasikan:
Math.floor(0.5); // => 0
Math.floor(0.05); // => 0
Math.floor(0.005); // => 0
Math.floor(0.0005); // => 0
Math.floor(0.00005); // => 0
Math.floor(0.000005); // => 0
Math.floor(0.0000005); // => 0
Sekarang, dapatkah Anda menjelaskan mengapa parseInt(99999999999999999999999999)sama dengan 1?
Terima kasih telah membaca.
Lebih banyak konten di PlainEnglish.io . Mendaftar untuk buletin mingguan gratis kami . Ikuti kami di Twitter dan LinkedIn . Bergabunglah dengan Discord komunitas kami .
Jika kita ingin terus berkembang di planet ini, kita harus melakukan percakapan yang berbahaya. Yang menantang apa yang telah kita lakukan, apa yang kita lakukan, dan apa yang saat ini akan terus kita lakukan (atau rencanakan untuk lakukan).
(Peringatan- Ini Satire, dimaksudkan untuk Menjadi Gleefully Subversive- Jelas bukan untuk anak-anak) Anda pernah melihat ibu dan ayah Anda bersembunyi di dapur dan merokok rokok yang bau itu. Mereka memberi tahu Anda.
Gatal di tangan saya menyebar saat saya menawar dengan penjual buku lokal untuk buku lain. Buku ini seperti buku lain yang saya beli baru-baru ini akan menemukan singgasananya di tumpukan 'To Be Read' (TBR) saya; namun, saya membelinya.
Kemarin kami menutup pintu pada Kontes Lagu Eurovision tahun ini dengan grand final yang gemerlap dan kacau di mana penyanyi Swedia Loreen membawa pulang trofi, menjadi wanita pertama yang menang dua kali dan membawa mahkota kembali ke Swedia 50 tahun setelah ABBA memenangkan kompetisi dengan "Waterloo". Mereka kemudian menjadi salah satu aksi terbesar dalam kanon musik pop.
Itu mengejutkan saya Tiba-tiba seperti yang sering terjadi Ini di tengah jalan lagi <Tidak, bukan yang di pasifik Anda merah marun, yang di karnaval> Setiap berita utama keras…..
Di dunia yang serba cepat dan kompetitif saat ini, karier seseorang memainkan peran penting dalam pertumbuhan pribadi, stabilitas keuangan, dan kepuasan hidup secara keseluruhan. Namun, banyak orang menemukan diri mereka terjebak dalam siklus stagnasi dan ketidakpuasan tanpa henti, secara bertahap menyia-nyiakan kehidupan profesional mereka.