Rumah >pembangunan bahagian belakang >C++ >Mengapa bahagian saya menghasilkan sifar walaupun input bukan sifar?
Pertimbangkan contoh kod ini:
<code>decimal share = (18 / 58) * 100;</code>di sini, 18 dan 58 dianggap sebagai bilangan bulat. Bahagian Integer sentiasa menghasilkan hasil integer; Mana -mana bahagian pecahan dipotong. Oleh itu, 18 dibahagikan dengan 58 hasil dalam 0.
Penyelesaiannya adalah untuk memastikan bahawa bahagian dilakukan menggunakan jenis data perpuluhan:
<code>decimal share = (18m / 58m) * 100m;</code>akhiran "M" secara eksplisit membuang nombor sebagai perpuluhan. Ini memaksa bahagian perpuluhan, memberikan hasil yang tepat dan tidak sifar. Perubahan mudah ini menghalang ralat pemangkasan dan menyelesaikan masalah.
Atas ialah kandungan terperinci Mengapa bahagian saya menghasilkan sifar walaupun input bukan sifar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!