rkt*_*rkt 4 php floating-point validation
这真的很奇怪.我有这段代码.
$rewardAmt = $amt;
if(is_float($rewardAmt)){
print_r("is float");die;
} else {
print_r("is not float"); die;
}
Run Code Online (Sandbox Code Playgroud)
$ amt的值是0.01.但它正在进入其他条件.所以我做了一个$ amt的var_dump.它说字符串(4)所以我决定强制转换$ amt
$rewardAmt = (float)$amt;
Run Code Online (Sandbox Code Playgroud)
但问题是即使$ amt的值为1,它仍然会被转换为浮动并进入条件,这不应该发生.有没有其他方法可以做到这一点?谢谢
Joh*_*nde 10
使用filter_var()与FILTER_VALIDATE_FLOAT
if (filter_var($amount, FILTER_VALIDATE_FLOAT))
{
// good
}
Run Code Online (Sandbox Code Playgroud)
小智 5
如果您将第一行更改为
$rewardAmt = $amt+0;
Run Code Online (Sandbox Code Playgroud)
$rewardAmt 应该被转换为一个数字。