ホームページ >バックエンド開発 >PHPチュートリアル >PHPで最も近い5の倍数に切り上げるにはどうすればよいですか?

PHPで最も近い5の倍数に切り上げるにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-27 08:39:03451ブラウズ

How to Round Up to the Nearest Multiple of Five in PHP?

PHP での最も近い 5 の倍数への四捨五入

PHP で数値を扱う場合、多くの場合、最も近い特定の値に四捨五入する必要があります。一般的なシナリオの 1 つは、最も近い 5 の倍数に切り上げることです。

問題ステートメント

入力として整数を受け取り、その最も近い 5 の倍数を返す PHP 関数が求められます。たとえば、52 を指定して呼び出すと、55 が返されるはずです。

組み込みのround()関数は、デフォルトではこの機能を提供しません。負の精度で使用すると、最も近い 10 の累乗に丸められます。

解決策

目的の丸め動作を実現するには、カスタム関数を作成できます:

<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>

その他の丸め戦略

最も近い倍数に切り上げることに加えて、異なる丸め戦略が必要なシナリオが発生する場合があります。以下にいくつかのバリエーションを示します。

1.現在の数値を除き、次の倍数に四捨五入します

<code class="php">function roundUpToNextMultiple($number, $multiplier = 5) {
    return roundUpToNearestMultiple($number + 1, $multiplier);
}</code>

2.現在の数値を含む最も近い倍数に丸めます

<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.整数に切り上げてから最も近い倍数に切り上げます

<code class="php">function roundUpToIntegerAndNearestMultiple($number, $multiplier = 5) {
    $roundedNumber = ceil($number);

    if ($roundedNumber % $multiplier == 0) {
        return $roundedNumber;
    }

    return roundUpToNearestMultiple($roundedNumber, $multiplier);
}</code>

以上がPHPで最も近い5の倍数に切り上げるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。