如何四舍五入到下一个偶数?

How to round up to the next even number?

我想四舍五入到下一个偶数,php。

示例:

$num = ceil($input); // Round up decimals to an integer
if($num % 2 == 1) $num++; // If odd, add one

测试用例:

$tests = ['71' => '72', '33.1' => '34', '20.8' => '22'];
foreach($tests as $test => $expected) {
    $num = ceil($test);
    if($num % 2 == 1) $num++;
    echo "Expected: $expected, Actual: $num\n";
}

Produces:

Expected: 72, Actual: 72
Expected: 34, Actual: 34
Expected: 22, Actual: 22
$num = ceil($input); // Round up Floats to an integer
$num += $num % 2; // add $num modulo 2 remainder (is 1 if odd, 0 if even)

更多选项:

$num += $num % 2;       //next even
$num -= $num % 2;       //prev even
$num += ($num + 1) % 2; //next odd
$num -= ($num + 1) % 2; //prev odd