我在脚本中有用户输入 -$_POST['money']
我想确认它实际上是小数点后 2 位的浮点数。
我的计划是,在这种情况下,如果输入非数字$money = (float)@$_POST['money']
,它将设置为零。$money
但是当用户输入 5.234 之类的东西时可能会发生这种情况,在这种情况下,我也希望将钱设置为零。
我不想做一些棘手的事情explode
或类似的事情,我希望有一种有效的方法来做到这一点。
整数也可以,因为它是有效数量。
我在脚本中有用户输入 -$_POST['money']
我想确认它实际上是小数点后 2 位的浮点数。
我的计划是,在这种情况下,如果输入非数字$money = (float)@$_POST['money']
,它将设置为零。$money
但是当用户输入 5.234 之类的东西时可能会发生这种情况,在这种情况下,我也希望将钱设置为零。
我不想做一些棘手的事情explode
或类似的事情,我希望有一种有效的方法来做到这一点。
整数也可以,因为它是有效数量。
在这里检查:
http://php.net/manual/ro/function.is-float.php
和这里
http://php.net/manual/en/function.number-format.php
或使用此功能
function is_deccount($number,$decimal=2){
$m_factor=pow(10,$decimal);
if((int)($number*$m_factor)==$number*$m_factor)
return true;
else
return false;
}
我选择使用此代码:
$money = (float)(@$_POST['money'] / 0.01) <> (int)(@$_POST['money'] / 0.01) ? 0 : (float)@$_POST['money'];
如果您有更好的解决方案,请发布。