在PHP的范围内舍入到最接近的5的倍数

时间:2012-11-13 09:02:47

标签: php if-statement get integer rounding

我有这个if语句:

if($_GET["angle_1"] > 39) {
    $markers["###ANGLE###"] = "45"; 
} elseif($_GET["angle_1"] > 29 && $_GET["angle_1"] < 40) { 
    $markers["###ANGLE###"] = "35"; 
} elseif($_GET["angle_1"] < 30) {
     $markers["###ANGLE###"] = "25"; 
} else { 
     $markers["###ANGLE###"] = "45"; 
}

有没有更好/更简单的方法来执行此检查,f.x。圆形将整数舍入到最接近的5,即28-> 25或34 - &gt;如果整数小于25,则它将始终为25,如果整数大于45,则它将始终为45,如果整数在30和40之间,则它将始终为35。

返回的值将用于显示图像。

编辑:

我有3张图片:image_25,image_35和image_45,因此需要进行舍入。

2 个答案:

答案 0 :(得分:6)

假设$x有数字:

$x = 39;

如果您想要最接近的5(39 - > 40)倍数:

$x = round($x / 5) * 5;

如果你想围捕(36 - > 40):

$x = ceil($x / 5) * 5;

如果你想向下舍入(39 - > 35):

$x = floor($x / 5) * 5;

定义$x后,您可以使用以下内容确保其在25-45范围内:

$x = ($x > 45) ? 45 : ($x < 25) ? 25 : $x;

答案 1 :(得分:3)

尝试一下:

$var = 5 * round($n / 5);

取自here