如何使用PHP向下舍入到下一个x20号码?

时间:2011-11-15 21:24:07

标签: php

我知道ceil,它将在15.1到16和31.2到32之间。 但是如何围绕下一个x20号码呢?如15.1至20和31,2至40?

需要为图表的y轴制作有意义的标签。

5 个答案:

答案 0 :(得分:3)

试试这个(适用于JavaScript):

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

在这里,我们将四舍五入到20。要舍入到其他数字,只需将20替换为您想要的任何基数。可以找到ceil()的文档here

执行相同操作的功能:

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

如果您想将舍入到最近的基础,而不是将向上舍入,请使用round()代替ceil()

答案 1 :(得分:2)

除以20并使用ceil,然后乘以20

答案 2 :(得分:2)

或者您可以使用模数:

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

答案 3 :(得分: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=11.5=2的方式。

答案 4 :(得分:1)

你可以用这个

  

小区(X / 2)* 2