Mengapa parseInt(0,0000005) JavaScript mencetak “5”?

Mengapa parseInt(0,0000005) dalam JavaScript mencetak 5? Sebuah pertanyaan yang luar biasa!

Kata pengantar

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.

1. Kapan Anda menggunakan parseInt?

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.

2. Beberapa hal tentang 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...

3.1. Langkah pertama adalah mengubah angka menjadistring

Mari 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

4. Bagaimana cara mendapatkan bagian bilangan bulat dari bilangan floating-point dengan aman?

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 .

Suggested posts

Percakapan Berbahaya

Percakapan Berbahaya

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).

Buku Pertama Seorang Anak tentang Menjadi Tinggi

Buku Pertama Seorang Anak tentang Menjadi Tinggi

(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.

Related posts

Tantangan Membaca Goodreads Beracun

Tantangan Membaca Goodreads Beracun

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.

Apakah Seni Pernah Apolitis?

Apakah Seni Pernah Apolitis?

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.

kata ganti itu sangat menakutkan

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…..

Erosi Lambat: Mengungkap Cara Orang Menghilang dalam Kariernya

Erosi Lambat: Mengungkap Cara Orang Menghilang dalam Kariernya

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.