这实在是太奇怪了。我有这段代码。
$rewardAmt = $amt;
if(is_float($rewardAmt)){
print_r("is float");die;
} else {
print_r("is not float"); die;
}
$amt 的值为 0.01。但它正在进入其他状态。所以我做了 $amt 的 var_dump。它说字符串(4)
所以我决定输入 $amt
$rewardAmt = (float)$amt;
但这样做的问题是,即使 $amt 的值为 1,它仍然会被类型转换为 float 并进入 if 条件,这是不应该发生的。还有其他方法可以做到这一点吗?谢谢
Use filter_var() https://www.php.net/manual/en/function.filter-var.php with FILTER_VALIDATE_FLOAT https://www.php.net/manual/en/filter.filters.validate.php
if (filter_var($amount, FILTER_VALIDATE_FLOAT))
{
// good
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)