Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah saya boleh membulatkan integer dengan cekap kepada gandaan terdekat dalam C ?
Membundarkan Integer Sehingga Gandaan
Dalam C , membundarkan nilai integer kepada gandaan terdekat bagi nombor lain ialah operasi yang mudah. Fungsi berikut menyelesaikan tugas ini dengan cekap dan tepat:
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; } }
Fungsi ini mengambil dua hujah integer: nilai untuk dibundarkan (numToRound) dan gandaan untuk membundarkannya kepada (berbilang). Ia mengembalikan nilai yang dibundarkan sebagai integer.
Fungsi terlebih dahulu menyemak sama ada gandaan ialah sifar. Jika ya, fungsi mengembalikan nilai asal tidak berubah.
Jika gandaan bukan sifar, fungsi mengira nilai mutlak baki pembahagian numToRound dengan gandaan. Ini memberikan perbezaan antara nilai asal dan gandaan terdekat di bawahnya.
Seterusnya, fungsi menyemak sama ada nilai asal adalah negatif. Jika ya, ia melaraskan nilai bulat dengan sewajarnya untuk memastikan ia masih lebih besar daripada atau sama dengan nilai asal. Untuk nilai positif, fungsi hanya menambah jumlah yang diperlukan untuk dibundarkan kepada gandaan terdekat.
Contoh
Pertimbangkan contoh berikut:
Dalam setiap kes, fungsi membulat dengan betul nilai asal sehingga gandaan terdekat bagi gandaan yang diberikan.
Atas ialah kandungan terperinci Bagaimanakah saya boleh membulatkan integer dengan cekap kepada gandaan terdekat dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!