Cómo verificar si un número es un flotante en Python


Mejor respuesta

En Python, puede conocer el tipo de conjunto de datos en cualquier programa, usando el función type () .

Si un número es flotante, el código imprimirá el tipo de todos modos. Un ejemplo:

a = 2 #integer

b = "Cosmos" #string

c = 3.4 #float

print(type(a))

print(type(b))

print(type(c))

La salida mostrará naturalmente el tipo de datos de cada uno, con el valor en la variable c siendo float. Por lo tanto, esta es la forma más fácil y rápida de saber si un tipo de datos es flotante.

Hope ayuda 🙂

Respuesta

Depende del idioma. Algunos lenguajes (como JavaScript) tienen un operador typeof que puede usar para diferenciar. Aunque en JavaScript, esto no le ayudará, ya que no existen números enteros en JavaScript. JavaScript tiene un tipo de número unificado que encapsula tanto enteros como flotantes, por lo que las formas de verificarlo incluyen

n - Math.floor(n) > 0

// 3.14 - 3.00 = 0.14. 0.14 > 0.00

n.toString().indexOf(".") == -1

// indexOf() returns -1 when it can’t find the given substring

Si está utilizando C (o un lenguaje que tiene un sistema de tipo nominal estático), puede hacer algo similar:

(n - (int) n) > 0

Lo que sucede aquí es que el operador (int) escribe su operando para forzarlo a ser un número entero. esto «corta» la parte decimal, por lo que tiene el mismo efecto que Math.floor de JavaScript.

Sin embargo, hay una advertencia. A veces, las pequeñas diferencias son demasiado pequeñas para el operador de igualdad. 1 == 0.9999999999999999 es falso, pero 1 == 0.99999999999999999 es verdadero. En C, por ejemplo, es posible que tenga que reemplazar > 0 con > FLT\_EPSILON y #include . FLT\_EPSILON es una constante que representa el flotador representable más pequeño. Puede usarlo al diferenciar dos flotantes y asegurarse de que no se compararán erróneamente como iguales. Para hacerlo, restelos y verifique que la diferencia sea mayor que («no es igual») o menor o igual que («igual») FLT\_EPSILON.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *