arrays — оператор регистра переключателя 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;

Этот вопрос является продолжением этот вопрос и ответ но не указывал десятичные дроби.

-1

Решение

Я предлагаю другой подход, который вы можете использовать (если у вас не слишком много интервалов для тестирования), Допустим, вам нужно знать, какой интервал содержит число:

$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;
}
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]