0

我有这个 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"; 
}

有没有更好/更简单的方法来做这个检查,fx with round 会将整数四舍五入到最接近的 5,即 28 -> 25 或 34 -> 35 等,如果整数小于 25,它将始终为 25,如果整数大于 45,则始终为 45,如果整数在 30 和 40 之间,则始终为 35。

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

编辑:

我有 3 张图片:image_25、image_35 和 image_45,因此需要四舍五入。

4

2 回答 2

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;
于 2012-11-13T09:06:38.513 回答
3

试试这个:

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

取自这里

于 2012-11-13T09:05:46.790 回答