检查整数或浮点值

时间:2010-08-11 18:39:51

标签: php

我有这个

$number = 0.5

if (is_float($number))
{
  echo 'float';
}
else
{
  echo 'not float';
}

并且它不会浮动。 可能是什么原因 感谢

4 个答案:

答案 0 :(得分:39)

可能$number实际上是一个字符串:"0.5"

请改为is_numericis_*系列检查变量的实际类型。如果你只知道变量是一个数字,无论它实际上是intfloat还是string,都要使用is_numeric

如果你需要它有一个非零小数部分,你可以这样做:

//if we already know $number is numeric...
if ((int) $number == $number) {
    //is an integer
}

答案 1 :(得分:1)

如果您只是检查.(dot),那么您不需要typecast,而是将其作为包含[strpos][1]()的字符串进行操作。

if (strpos($number,'.') !== false) {

    echo 'true';
}else {
    echo 'false';
}

答案 2 :(得分:1)

is_numeric()函数检查变量是数字还是数字字符串。如果变量是数字或数字字符串,则此函数返回true,否则返回false / nothing。

$number = 0.5;
echo is_numeric($number);   //true

OR

$number = "0.5";
echo is_numeric($number);   //true

了解更多信息:

How to check if a variable is a float in PHP?

How to check if a variable is an Integer in PHP?

答案 3 :(得分:0)

如果我理解正确,使用类型转换将允许您检查int并正确浮动,无论机器的语言环境如何。但是,我可能非常错误......我不确定PHP是否支持十进制语言环境,例如某些国家/地区的逗号(,)。