【发布时间】:2017-03-25 23:33:28
【问题描述】:
使用大小写开关,我将如何测试十进制值是否在范围内?
此代码似乎只检查整数。
这是我尝试检查小数/分数的代码。
$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 语句 -
我愿意接受有关更好解决方案的建议。
标签: php arrays range decimal fractions