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
Lepaskan: 2025-01-29 11:36:10
asal
371 orang telah melayarinya

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:

1

<code>decimal share = (18 / 58) * 100;</code>

Salin selepas log masuk
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:

1

<code>decimal share = (18m / 58m) * 100m;</code>

Salin selepas log masuk
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 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