如何使用php对下一个x20数字进行取整?

如何使用php对下一个x20数字进行取整?,php,Php,我知道ceil,它将在15.1到16,31.2到32之间。 但是,如何将其四舍五入到下一个x20数字?比如15.1到20和31.2到40 需要为图表的y轴制作有意义的标签。除以20并使用ceil,然后乘以20尝试以下方法(在JavaScript中工作): 在这里,我们四舍五入到20。要四舍五入到其他数字,只需将20替换为所需的基数即可。可以找到ceil()的文档 具有相同功能的函数: function roundTo($value, $base) { return $base * cei

我知道ceil,它将在15.1到16,31.2到32之间。 但是,如何将其四舍五入到下一个x20数字?比如15.1到20和31.2到40


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

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

尝试以下方法(在JavaScript中工作):

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

具有相同功能的函数:

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

顺便说一句,如果您想四舍五入到最近的基数,而不是四舍五入,请使用而不是
ceil()

您可以使用此选项

中欧(x/2)*2


或者您可以使用模数:

echo round($a + 20 - ($a % 20));
如果希望“中等”值更精确,可以使用


这更接近于模拟
1.3=1
但是
1.5=2

你应该强调一个事实,$a必须已经在这个公式中被接受。@samura如果
$a=19.9
那么结果将是21。只要你不想要
9=0
15=20
(四舍五入之间的值就像小数点一样)。上面的代码是
0=20
1-20=20
然后
21=40
echo round($a + 20 - ($a % 20));
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.