Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => Mensaje iniciado por: Leguim en 12 Mayo 2021, 22:39 PM

Título: [Pregunta]: ¿Cómo saber si es un ENTERO o FLOTANTE en PHP?
Publicado por: Leguim en 12 Mayo 2021, 22:39 PM
Es algo trivial pero estoy teniendo problemas, no encuentro una función para saber si es ENTERO o FLOTANTE un número.
Estuve viendo pero no la encuentro, ya sé que existe is_int e is_float pero quiero que sea como is_numeric.

Quiero decir, is_numeric si le das como valor '3500' (cadena pero con numero dentro) devolverá true pero si pongo is_float('3500.78') esto me va a dar false porque no interpreta el numero que está en la cadena. Lo mismo pasa si fuera is_int('3500').

Pasa que como ya sabrán todo los datos que envía un formulario los devuelve en cadena.
¿No hay una función para eso?

EDIT:
Se me ocurrió algo "cutre" por así decirlo, y es que podría preguntar si dicha cadena tiene punto y si tiene punto quiere decir que en principio es un decimal entonces uso floatval('x');

IS_NUMERIC(x)
      TIENE_PUNTO(x)
             FLOATVAL(x)
      NO TIENE PUNTO
             INTVAL(x)

Por ahora tengo esto.
Título: Re: [Pregunta]: ¿Cómo saber si es un ENTERO o FLOTANTE en PHP?
Publicado por: WHK en 13 Mayo 2021, 00:11 AM
Intenta hacer un doble cast y luego comprueba si es igual al input:

Código (php) [Seleccionar]
<?php
$n 
'123.456';
if((string)(int)
$n === (string)$n) {
    echo 
'Es entero.';
} else {
    echo 
'No es entero.';
}


Saludos.
Título: Re: [Pregunta]: ¿Cómo saber si es un ENTERO o FLOTANTE en PHP?
Publicado por: Danielㅤ en 13 Mayo 2021, 01:10 AM
Hola, podes usar la función isdigit() :

https://www.geeksforgeeks.org/php-intlcharisdigit-function/


Saludos