Detectar si un número es decimal o entero

I'm a software engineer with experience in web development. The main technologies I work with are .NET, React, and SQL. Personally, I prefer the backend.
I'm keen on writing my dev journey. I think this is a great way to share and appropriate what I've learned.
En este artículo, exploraremos, diseñaremos y codificaremos en Python un algoritmo para determinar si un número posee una parte decimal o si es un número entero.
Problema
Detecta si un número dado es decimal o entero.
Ejemplo 1
Entrada: 4
Salida: entero
Ejemplo 2
Entrada: 3.1416
Salida: decimal
Consejo: Antes de escribir código debes saber cómo se resuelve el problema. Piensa en cómo lo resuelves sin código. Haz el algoritmo paso a paso en un papel o en el editor de código. Luego compara tu solución con la del artículo.
1. Análisis
Nos piden detectar si un número dado es decimal o entero.
Los números enteros incluyen los números naturales, sus opuestos negativos, y el cero. Es decir, números positivos, negativos y el cero. Por ejemplo, 1, -1, 0.
Los números decimales constan de una parte entera y de una fracción decimal. La parte entera y decimal se separa por una convención que puede ser un punto o una coma dependiendo del país. Entonces, un número decimal sería 1.5.
2. Diseño del algoritmo
1. Idea de solución
Se me ocurren tres ideas de solución.
A. Preguntar si el número contiene un punto o una coma, puesto que estos son los separadores de la parte entera de la parte decimal.
B. Truncar el número a la parte entera y preguntar si el número es igual al número truncado. Si es igual, es entero. Si es diferente, es decimal.
C. Usar el operador módulo para saber si el número tiene residuo. Si tiene residuo es decimal, de lo contrario, es entero.
Elegimos la opción B.
2. Diseño
1. Comparar el número contra el número truncado
1.1 Si es igual entonces es entero,
1.2 De lo contrario, es decimal
2. Guardar resultado
3. Imprimir resultado
3. Comprobación en seco
| Entrada | Comparación | Resultado |
| 4 | 4 = 4 | entero |
| 3.1416 | 3.1416 = 3 | decimal |
3. Codificación
Casi todos los lenguajes poseen ya una función para truncar un número. Solo tenemos que utilizarla. En el caso de Python hay varias opciones. Un par de ellas son:
usar
int(). Esto convierte el número a entero.usar
math.trunc()de la libreríamath
numero = 3.1416
if numero == int(numero):
resultado = "entero"
else:
resultado = "decimal"
print(resultado)
4. Complejidad
Tiempo: O(1) constante
Es constante porque no hay una colección que recorrer.
Espacio: O(1) constante
Es constante porque no hay una estructura de datos adicional.
Conclusión
En resumen, en este artículo analizamos y diseñamos un algoritmo para determinar si un número es entero o decimal. Tuvimos tres ideas de solución y seleccionamos una para desarrollar: comparar el número dado contra el número truncado. Aprendimos que para truncar un número en Python podemos usar el método int(). ¿Conoces otras formas de resolver este problema? ¡Coméntalas!
Bibliografía
Joyanes Aguilar, L. (2008). Fundamentos de programación. Madrid: McGraw-Hill.





