使用case开关,我将如何测试以查看十进制值是否在一个范围内?php switch case语句处理带小数/分数的范围
此代码似乎只检查整个数字。
这是我的代码,试图检查小数/分数。
$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;
这个问题是this question and answer的延续,但没有解决小数。
'in_array() “由于浮点不精确,真的不是检查浮点数的好方法;也不使用switch语句特别适合这种类型的检查 –
我很乐意提供更好的解决方案。 – Damien