tengo estecheque por entero o flotador valores
$number = 0.5
if (is_float($number))
{
echo 'float';
}
else
{
echo 'not float';
}
y no échos flotar. lo que podría ser la razón gracias
tengo estecheque por entero o flotador valores
$number = 0.5
if (is_float($number))
{
echo 'float';
}
else
{
echo 'not float';
}
y no échos flotar. lo que podría ser la razón gracias
Probablemente $number
es en realidad una cadena: "0.5"
.
Ver is_numeric
en su lugar. La familia is_*
comprueba el tipo real de la variable. Si solo desea saber si la variable es un número, independientemente de si es realmente int
, float
o string
, use is_numeric
.
Si se necesita tener una parte decimal distinto de cero, puede hacerlo:
//if we already know $number is numeric...
if ((int) $number == $number) {
//is an integer
}
si es una cadena, ¿cómo podría distinguir entre un entero y el punto de flotación en la picadura? gracias – Autolycus
@user He editado la respuesta para abordar sus inquietudes. – Artefacto
Convertirlo a un int no ayudaría si desea buscar carrozas. Además, debe usar ['intval'] (http://ca.php.net/manual/en/function.intval.php) o [' floatval'] (http://ca.php.net/manual /en/function.floatval.php) para convertir una cadena en un número. –
Si usted está mirando sólo por el .(dot)
entonces no es necesario typecast
pero manipularla como una cadena con [strpos][1]()
.
if (strpos($number,'.') !== false) {
echo 'true';
}else {
echo 'false';
}
Si entiendo correctamente, usar el tipo de transmisión le permitirá comprobar int y flotar correctamente independientemente de la configuración regional de la máquina. Sin embargo, podría estar muy equivocado ... No estoy seguro si PHP admite configuraciones locales decimales, como la coma (,) para ciertos países.
El código que ha publicado funciona bien para mí (excepto que olvidó un punto y coma después de la primera línea). – jhartz