2011-11-15 12 views
2

私はceilを知っています。これは15.1から16と31.2から32を丸めます。 しかし次のx20の数値に切り上げるには? 15.1から20と31,2から40のように?PHPで次のx20の数値に切り上げる方法は?

グラフのY軸に対して意味のあるラベルを作成する必要があります。 20によって

答えて

2

デバイドと20

+0

#C0FFEE!ありがとうございました! – iceteea

3

を掛け、その後、切り上げを使用するには、(JavaScriptで動作します)、これを試してみてください:

ここ
$result = 20 * ceil($input/20); 

を、我々は20に丸めます。他の数字に丸めるには、20を任意のベースに置き換えます。 ceil()のドキュメントはhereです。

同じことを機能:脇の小さなとして

function roundTo($value, $base) 
{ 
    return $base * ceil($value/$base); 
} 

、あなたは、代わりにアップを丸めるの、最寄りベースにを丸めるround()を使用する代わりにceil()したい場合。

+0

'9 = 0'と' 15 = 20'(小数点のような丸みの間の値)が必要でない限り、素晴らしい解決策です。上記の式は '0 = 20'と' 1-20 = 20'と '21 = 40'を作成します。 –

1

あなたはこの

切り上げを使用することができます(X/2)* 2

2

それとも、使用することができます率:

echo round($a + 20 - ($a % 20)); 
+1

$ aはこの式で既に天井に置かれている必要があります。 –

+0

@samura '$ a = 19.9'の場合、結果は21になります。 – Fluff

2

あなたは、 "ミッドレンジ" の値が必要な場合さらに丸めるにはthe followingを使用できます。

function roundTo($n,$i = 1){ 
    $r = $n % $i; 
    $d = round(($n - $r * $i)/$i); 
    return $r * $i + $d * $i; 
} 

for ($a = 0; $a < 100; $a++){ 
    printf("%d = %d\r\n", $a, ceil2($a, 20)); 
} 

上記の生成:

Number: Rounded To: 
0-10  0 
11-30  20 
31-50  40 
etc. 

これは、より密接にどのように1.3=1が、1.5=2をシミュレートします。

関連する問題