我有一个简单的round函数。它四舍五入为偶数。我想确定这个数字能被16整除。有人知道把数字四舍五入到最接近的可被16整除的数字的简单方法吗?
$num=round(480/$other_num); //will output some number.
$num = 39;
$num = round($num / 16) * 16; // 32
简单的方法似乎是除以16,然后使用"经典圆"并乘以16。
$num=round(480/16)*16;
也许你可以用0xf对数字进行位和加1?
function round16($num) {
if ($num % 16 == 0) return $num;
$num2 = $num;
$remain = 0;
do {
$remain = --$num % 16;
} while ($remain != 0 && $num >= $num2 - 7);
if ($remain == 0) return $num;
do {
$remain = ++$num2 % 16;
} while ($remain != 0);
return $num2;
}
可能不是最有效的方法。