检查为整数或浮点数值
我有这个检查为整数或浮点数值
$number = 0.5
if (is_float($number))
{
echo 'float';
}
else
{
echo 'not float';
}
而且回声不浮动。 可能是什么原因 感谢
大概$number
实际上是一个字符串:"0.5"
。
请参阅is_numeric
。 is_*
系列检查变量的实际类型。如果您只知道要知道变量是否为数字,无论它是实际上是int
,float
还是string
,请使用is_numeric
。
如果你需要有一个非零小数部分,你可以这样做:
//if we already know $number is numeric...
if ((int) $number == $number) {
//is an integer
}
如果它是一个字符串,那么我将如何区分一个整数和刺中的浮点数? 谢谢 – Autolycus 2010-08-11 18:42:52
@user我已编辑回复以解决您的问题。 – Artefacto 2010-08-11 18:45:50
如果你想检查浮点数,将其转换为int将无济于事。另外,你应该使用['intval'](http://ca.php.net/manual/en/function.intval.php)或['floatval'](http://ca.php.net/manual /en/function.floatval.php)将字符串转换为数字。 – 2010-08-11 18:58:14
如果你是刚刚检查的.(dot)
,那么你就不需要typecast
但操作它作为一个字符串[strpos][1]()
。
if (strpos($number,'.') !== false) {
echo 'true';
}else {
echo 'false';
}
如果我理解正确,使用类型转换将允许您正确地检查int和float,而不管机器的语言环境如何。然而,我可能是错的......我不确定PHP是否支持小数语言环境,例如某些国家的逗号(,)。
您发布的代码对我来说工作正常(除非您在第一行之后忘了分号)。 – jhartz 2010-08-11 18:59:09