¿Cómo puedo saber si un flotador en PHP es un número redondo?¿Detecta el número redondo en PHP?
is_round(1.5); // false
is_round(1.0); // true
is_round(1.00000001); // false
¿Cómo puedo saber si un flotador en PHP es un número redondo?¿Detecta el número redondo en PHP?
is_round(1.5); // false
is_round(1.0); // true
is_round(1.00000001); // false
Modificación del código de Rob con respecto al comentario de sterofrog. Verifique el código para asegurarse de que el valor sea también numérico.
function is_round($value) {
return is_numeric($value) && intval($value) == $value;
}
function is_round($value) {
return intval($value) == $value;
}
** @ stereofrog: ** ¿Cómo es posible? 'intval ('bar')! = 'bar'' desde' 0! =' bar''. –
@stereofrog: Wow ... –
La función especificada en this page por thierryreeuwijk debe especificar sus necesidades.
No estoy del todo seguro, porque la variable entrante sigue siendo un 'float'. ¿O estoy equivocado y esto funcionará? –
if ($value = round($value))
debería funcionar.
Una versión mucho más corta: !fmod($num,1)
en PHP o esto en JS: !($num % 1)
En función (más legible):
function is_round($num) {
return !fmod($num, 1);
}
Esto funciona sobre la base de que cualquier número que no es exactamente 0 es falsey. Puede usar fmod($num,1)
para obtener los decimales de un número; una vez que tenga esos solo puede !
ellos.
Si está comprobando si un número es redondo, ya debería haber verificado que una variable es realmente un número. 'is_round ('bar') => false' no tiene ningún sentido. –