Rumah > pembangunan bahagian belakang > C++ > Mengapa Bahagian Integer menghasilkan sifar?

Mengapa Bahagian Integer menghasilkan sifar?

Mary-Kate Olsen
Lepaskan: 2025-01-29 11:31:09
asal
904 orang telah melayarinya

Why Does Integer Division Result in Zero?

sifar yang tidak dijangka dalam pembahagian: perangkap biasa

sifar yang tidak dijangka dari pengiraan bahagian adalah sumber kesilapan pengaturcaraan yang kerap. Mari kita periksa senario biasa untuk memahami mengapa ini berlaku.

Masalah:

Pertimbangkan kod ini:

decimal share = (18 / 58) * 100;
Salin selepas log masuk
Hasil dari bahagian ini menghairankan sifar.

Penyelesaian:

Sebab akar adalah bahagian integer. Apabila membahagikan bilangan bulat, hasilnya dipotong (bahagian pecahan dibuang), yang membawa kepada hasil bilangan keseluruhan. Dalam kes ini, 18 dibahagikan dengan 58 adalah kurang daripada 1, jadi ia dipotong hingga 0.

untuk membetulkannya, kita mesti menggunakan nilai perpuluhan secara eksplisit:

decimal share = (18m / 58m) * 100m;
Salin selepas log masuk
sufiks

menunjuk setiap nombor sebagai literal perpuluhan, memastikan bahagian terapung dan hasil yang tepat dan tidak sifar. Ini memaksa pengiraan menggunakan aritmetik terapung, memberikan jawapan pecahan yang tepat. m

Atas ialah kandungan terperinci Mengapa Bahagian Integer menghasilkan sifar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan