我有這個檢查爲整數或浮點數值
$number = 0.5
if (is_float($number))
{
echo 'float';
}
else
{
echo 'not float';
}
而且回聲不浮動。 可能是什麼原因 感謝
我有這個檢查爲整數或浮點數值
$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