Rumah >pembangunan bahagian belakang >C++ >Mengapa C# Membundarkan Bahagian Integer ke Bawah, dan Bagaimana Saya Boleh Menghalangnya?

Mengapa C# Membundarkan Bahagian Integer ke Bawah, dan Bagaimana Saya Boleh Menghalangnya?

DDD
DDDasal
2025-01-05 18:18:40986semak imbas

Why Does C# Round Down Integer Division, and How Can I Prevent It?

Memahami Pembundaran Perpuluhan dalam C#

Apabila melakukan pembahagian dalam C#, anda mungkin menghadapi keadaan di mana hasilnya dibundarkan ke bawah tanpa diduga. Tingkah laku ini berpunca daripada pembahagian integer, iaitu operasi lalai untuk membahagi nombor bulat, seperti dalam contoh:

double i;
i = 200 / 3;

Dalam kes ini, hasilnya ialah 66, walaupun hasil pembahagian sebenar ialah 66.66666~ . Untuk mengelakkan penggenapan ke bawah ini, anda boleh menggunakan teknik pembahagian alternatif.

Satu pendekatan adalah dengan secara eksplisit membuang salah satu operan kepada dua kali, memaksa pembahagian dilakukan menggunakan operator bahagi dua:

i = (double)200 / 3;

Sebagai alternatif, anda boleh mengisytiharkan salah satu pemalar sebagai dua kali ganda:

i = 200.0 / 3;

Atau, anda boleh menggunakan akhiran d untuk menunjukkan literal berganda:

i = 200d / 3;

Dengan mengisytiharkan salah satu pemalar sebagai dua kali ganda, anda memastikan bahawa pengendali bahagian dua digunakan, dengan itu menghalang pembundaran integer dan mengekalkan nilai perpuluhan.

Atas ialah kandungan terperinci Mengapa C# Membundarkan Bahagian Integer ke Bawah, dan Bagaimana Saya Boleh Menghalangnya?. 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