Rumah > Artikel > pembangunan bahagian belakang > Bagaimanakah Saya Boleh Membundarkan Nombor Dengan Cekap kepada Gandaan Terdekat dalam C ?
Membundarkan Hingga Gandaan Nombor dalam C
Apabila bekerja dengan nombor dalam pengaturcaraan, mungkin perlu untuk membulatkan nilai kepada gandaan terdekat bagi nombor lain. Terdapat pelbagai cara untuk mendekati tugasan ini dalam C , tetapi artikel ini akan menumpukan pada kaedah yang cekap yang memanfaatkan aritmetik integer untuk mencapai pembundaran yang tepat.
Coretan kod yang disediakan, roundUp, menawarkan penyelesaian yang mudah untuk nombor positif. Ia mengira baki apabila nombor input numToRound dibahagikan dengan gandaan dan menambah gandaan kepada numToRound jika bakinya bukan sifar. Ini memastikan bahawa hasilnya ialah gandaan terdekat yang lebih besar daripada atau sama dengan input.
Walau bagaimanapun, untuk nombor negatif, kod asal tidak memberikan gelagat yang diingini. Untuk menampung nombor negatif, versi roundUp yang diubah suai diperkenalkan. Versi ini mengira nilai mutlak nombor input sebelum melakukan operasi pembundaran. Selain itu, ia menggunakan logik bersyarat untuk melaraskan tanda hasil berdasarkan tanda input. Ini memastikan bahawa keputusan sentiasa lebih besar daripada atau sama dengan input, tanpa mengira tandanya.
Berikut ialah kod yang dikemas kini untuk mengendalikan kedua-dua nombor positif dan negatif:
int roundUp(int numToRound, int multiple) { if (multiple == 0) return numToRound; int remainder = abs(numToRound) % multiple; if (remainder == 0) return numToRound; if (numToRound < 0) return -(abs(numToRound) - remainder); else return numToRound + multiple - remainder; }
Kini, fungsi roundUp menyediakan gelagat yang konsisten untuk kedua-dua input positif dan negatif, memastikan pembundaran tepat kepada gandaan terdekat bagi nombor yang diberikan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membundarkan Nombor Dengan Cekap kepada Gandaan Terdekat dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!