2011-11-05 146 views

回答

19
$num = 39; 
$num = round($num/16) * 16; // 32 
+0

感謝添乘回來。欣賞它。 – Scarface

+1

使用'floor()',如果你需要總是將它舍入(而不是最近的向上或向下)。 – silkfire

1

也許你可以位和數字與0xf和加1?

0
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; 
} 

可能不是最有效的方式做到這一點。

1

簡單的方法似乎以16分被,然後用「經典輪」和16

$num=round(480/16)*16;