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

Mengapa Bahagian Integer C# Membundarkan Ke Bawah, dan Bagaimana Saya Boleh Mengelaknya?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-05 18:24:40715semak imbas

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

Bahagian Membundarkan Ke Bawah dalam C#

Apabila melakukan pembahagian dalam C#, pengaturcara mungkin menghadapi gelagat pembundaran ke bawah yang tidak dijangka. Isu ini timbul apabila pembahagian integer dilakukan, mengakibatkan kehilangan bahagian pecahan.

Untuk menggambarkan, pertimbangkan kod berikut:

double i;
i = 200 / 3; // Integer division
MessageBox.Show(i.ToString());

Kod ini akan memaparkan kotak mesej dengan nilai "66". Walau bagaimanapun, keputusan yang dijangkakan untuk 200 / 3 hendaklah 66.66666...

Penyelesaian: Gunakan Pembahagian Berganda

Untuk mengelakkan pembundaran ini ke bawah dan mengekalkan ketepatan titik terapung, seseorang harus menggunakan pembahagian dua kali bukannya pembahagian integer. Ini boleh dicapai dengan:

  1. Menukar salah satu operan kepada dua:
i = (double)200 / 3;
  1. Menggunakan titik perpuluhan mengekor dalam satu operan:
i = 200.0 / 3;
  1. Melampirkan akhiran d pada satu operan:
i = 200d / 3;

Dengan menggunakan pembahagian dua kali, pengendali bahagian / akan melakukan pembahagian titik terapung, mengekalkan semua digit bererti.

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