在PHP中四舍五入到最近的5/10


Rounding to nearest 5/10 in PHP

我有两个输入

min, max

在min=32和max=46的情况下,我希望PHP自动将值精确到5/10,即在这种情况下min=30和max=50?

但在这种情况下,如果最小值=35或40最大值=40或45,则无需进行四舍五入

如何在PHP中实现这一点?

顺便说一句,系统只处理整数值,上面的值只是示例。它需要适用于从0到无穷大的一系列数字。所以4会四舍五入到0,6到10…等等…

function round_to_10($n) {
  return round($n / 10) * 10;
}

php> echo round_to_10(32)
30
php> echo round_to_10(46)
50

如果你把这个数字乘以2,你可以把它四舍五入到10,然后再除以2。

function round_five($num) {
    return round($num*2,-1)/2;
}
$nums = array(32,46,35,40);
foreach($nums as $num) {
    printf("%s: %s'n",$num,roundFive($num));
}

以上将返回

32: 30
46: 45
35: 35
40: 40