如何通过固定数值为指定值设置对应动态范围?
解决思路
核心是找到以$fixed为步长的连续区间,确保$value落在其中。具体逻辑如下:
- 计算区间下限:对
$value和$fixed做整数除法(取商的整数部分),再乘以$fixed,得到小于等于$value的最大$fixed倍数。 - 计算区间上限:下限直接加上
$fixed,得到区间的最大值。
代码示例(PHP)
$fixed = 5; // 示例1:$value = 7 $value = 7; $lower = (int)($value / $fixed) * $fixed; $upper = $lower + $fixed; echo "范围:{$lower} 到 {$upper}"; // 输出:范围:5 到 10 // 示例2:$value = 19 $value = 19; $lower = (int)($value / $fixed) * $fixed; $upper = $lower + $fixed; echo "范围:{$lower} 到 {$upper}"; // 输出:范围:15 到 20 // 示例3:$value = 23 $value = 23; $lower = (int)($value / $fixed) * $fixed; $upper = $lower + $fixed; echo "范围:{$lower} 到 {$upper}"; // 输出:范围:20 到 25
边界情况处理
如果$value刚好是$fixed的整数倍(比如$value=10,$fixed=5),按上述逻辑会得到范围10 到 15,符合示例中区间的连续性(10是前一个区间的上限,同时是下一个区间的下限)。
内容的提问来源于stack exchange,提问作者Mostafa
相关产品推荐
相关产品推荐

