Rumah >pembangunan bahagian belakang >C++ >Mengapa bahagian saya menghasilkan sifar walaupun input bukan sifar?

Mengapa bahagian saya menghasilkan sifar walaupun input bukan sifar?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-29 11:36:10404semak imbas

Why Does My Division Result in Zero Despite Non-Zero Inputs?

Keputusan Bahagian Zero yang Tidak Dihadapi: Perangkap biasa

Pembahagian nombor kadang-kadang boleh menghasilkan hasil yang mengejutkan, seperti mendapatkan sifar walaupun kedua-dua input tidak sifar. Ini sering berpunca dari bagaimana bahasa pengaturcaraan mengendalikan jenis data semasa pengiraan.

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!

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