Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Mengumpulkan kepada Gandaan Lima Terdekat dalam PHP?
Apabila bekerja dengan nombor dalam PHP, selalunya perlu untuk membundarkannya kepada nilai khusus yang terdekat. Satu senario biasa ialah membundarkan kepada gandaan lima terdekat.
Fungsi PHP dicari yang mengambil integer sebagai input dan mengembalikan gandaan lima terhampirnya. Contohnya, apabila dipanggil dengan 52, ia sepatutnya mengembalikan 55.
Fungsi round() terbina dalam tidak menyediakan fungsi ini secara lalai. Apabila digunakan dengan ketepatan negatif, ia membundarkan kepada kuasa terdekat sepuluh.
Untuk mencapai gelagat pembundaran yang diingini, fungsi tersuai boleh dibuat:
<code class="php">function roundUpToNearestMultiple($number, $multiplier = 5) { // Check if the number is already a multiple of the multiplier if ($number % $multiplier == 0) { return $number; } // Calculate the nearest multiple of the multiplier greater than the number $nextMultiple = ceil($number / $multiplier) * $multiplier; // Round the number up to the next multiple return $nextMultiple; }</code>
<code class="php">echo roundUpToNearestMultiple(52); // Outputs 55 echo roundUpToNearestMultiple(55); // Outputs 55 echo roundUpToNearestMultiple(47); // Outputs 50</code>
Selain membulatkan ke gandaan terdekat, anda mungkin menghadapi senario di mana strategi pembundaran berbeza diperlukan. Berikut ialah beberapa variasi:
1. Bundarkan kepada Gandaan Seterusnya, Tidak Termasuk Nombor Semasa
<code class="php">function roundUpToNextMultiple($number, $multiplier = 5) { return roundUpToNearestMultiple($number + 1, $multiplier); }</code>
2. Bundarkan kepada Gandaan Terdekat, Termasuk Nombor Semasa
<code class="php">function roundToNearestMultipleInclusive($number, $multiplier = 5) { if ($number % $multiplier == 0) { return $number; } $lowerMultiple = floor($number / $multiplier) * $multiplier; $upperMultiple = ceil($number / $multiplier) * $multiplier; return round($number - $lowerMultiple) > round($upperMultiple - $number) ? $lowerMultiple : $upperMultiple; }</code>
3. Bundarkan kepada Integer, Kemudian kepada Gandaan Terdekat
<code class="php">function roundUpToIntegerAndNearestMultiple($number, $multiplier = 5) { $roundedNumber = ceil($number); if ($roundedNumber % $multiplier == 0) { return $roundedNumber; } return roundUpToNearestMultiple($roundedNumber, $multiplier); }</code>
Atas ialah kandungan terperinci Bagaimana untuk Mengumpulkan kepada Gandaan Lima Terdekat dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!