Rumah >pembangunan bahagian belakang >C++ >Mengapa Bahagian Integer menghasilkan sifar?
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!