Skip to main content

Command Palette

Search for a command to run...

Detectar si un número es decimal o entero

Published
3 min read
Detectar si un número es decimal o entero
G

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

EntradaComparaciónResultado
44 = 4entero
3.14163.1416 = 3decimal

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ía math

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.

More from this blog

G

Gilberto Ramírez

13 posts

Soy un ingeniero de software con experiencia desarrollando aplicaciones web. Mi pila tecnológica es .NET, React, SQL. Me gusta escribir y compartir lo aprendido.