检查一个数字是否在PHP中浮动

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 应该被转换为一个数字。