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

Mengapa Bahagian Integer menghasilkan sifar?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-29 11:31:09829semak imbas

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:

<code class="language-c#">decimal share = (18 / 58) * 100;</code>
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:

<code class="language-c#">decimal share = (18m / 58m) * 100m;</code>
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:
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