PHP 切换大小写语句以处理带有小数/分数的范围



使用大小写开关,我将如何测试十进制值是否在一个范围内?

此代码似乎只检查整数。

这是我试图检查小数/分数的代码。

$my_num = 0.38;
switch(true) {
    case in_array($my_num, range(0, .20, 0.01)):
        $my_num_result = "It looks like your number is between 0 - 0.20!";
    break;
    case in_array($my_num, range(.21, .40, 0.01)):
        $my_num_result = "I am between .21 - 0.40!";
    break;
}
//Result: I am between .21 - 0.40!
echo $my_num_result;

这个问题是这个问题和答案的延续,但没有解决小数。

我建议你可以使用一种不同的方法(如果你没有太多的间隔来测试(,假设你需要知道哪个间隔包含一个数字:

$intervals = [[0,.20],[.21,.40],[.41,.60]/*...*/];
$num = .32;
$message = 'I am between %s - %s!';
foreach ($intervals as $inter) {
    if ( $inter[0] <= $num && $num <= $inter[1] ) {
        vprintf($message, $inter);
        break;
    }
}

最新更新