Используя переключение регистра, как мне проверить, находится ли десятичное значение в пределах диапазона?
Этот код появляется только для проверки целых чисел.
Вот мой код в попытке проверить десятичные дроби / дроби.
$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;
}
}
Других решений пока нет …