使用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