Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Kita Boleh Memastikan Pembundaran Ke Atas dalam Bahagian Integer?
Kaedah yang boleh dipercayai untuk membulatkan pembahagian integer
Operasi integer boleh menjadi rumit, dan pembahagian tidak terkecuali. Walaupun tingkah laku lalai untuk pembahagian integer adalah untuk membundarkan ke arah sifar, terdapat situasi di mana pembundaran ke atas adalah lebih baik. Artikel ini meneroka kaedah untuk melaksanakan pembundaran dalam pembahagian integer, menangani kelemahan penyelesaian sedia ada dan mencadangkan pelaksanaan yang mantap.
Pernyataan Masalah
Matlamatnya adalah untuk melaksanakan fungsi pembahagian integer yang sentiasa membulatkan keputusan. Kaedah sedia ada melibatkan penuangan ke nombor titik terapung berketepatan dua kali dan menggunakan Math.Ceiling()
, yang boleh menyusahkan kerana operasi titik terapung terlibat.
Penyelesaian
Pengendalian aritmetik integer yang teliti adalah penting. Dengan mentakrifkan tingkah laku yang diingini dengan teliti dan memecahkan masalah kepada langkah yang boleh diurus, anda boleh mereka bentuk penyelesaian yang lebih elegan dan cekap.
Untuk melaksanakan spesifikasi ini, kita perlu mengira hasil bahagi integer, menentukan sama ada pembahagian itu genap dan menentukan sama ada hendak dibundarkan ke atas atau ke bawah.
<code class="language-java">public static int DivRoundUp(int dividend, int divisor) { if (divisor == 0) throw new ArithmeticException("除以零"); if (divisor == -1 && dividend == Integer.MIN_VALUE) throw new ArithmeticException("溢出错误"); int roundedQuotient = dividend / divisor; boolean dividedEvenly = (dividend % divisor) == 0; if (dividedEvenly) { return roundedQuotient; } else { boolean roundedDown = ((divisor > 0) == (dividend > 0)); if (roundedDown) { return roundedQuotient + 1; } else { return roundedQuotient; } } }</code>
Penyelesaian ini mematuhi spesifikasi dan agak mudah difahami. Ia mengelakkan hantaran kepada nombor titik terapung berketepatan dua kali dan pengendalian ralat yang kompleks, menjadikannya cekap dan teguh.
Atas ialah kandungan terperinci Bagaimanakah Kita Boleh Memastikan Pembundaran Ke Atas dalam Bahagian Integer?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!