La función del entero más cercano en Python: redondeo y conversión a enteros

Python, reconocido por su potencia y flexibilidad, incluye numerosas bibliotecas internas para automatizar tareas computacionales y matemáticas complejas. La biblioteca math ofrece métodos para realizar cálculos típicos como el redondeo. Sin embargo, redondear decimales en Python no devuelve un entero, sino un número decimal entero. Para convertir a enteros se requiere combinar la biblioteca math con funciones de conversión integradas.

Python y el redondeo

La biblioteca math proporciona un paquete de métodos útiles para redondear números decimales a números enteros. Puedes redondear de forma tradicional (hacia abajo si la parte fraccionaria es ≤ .4, hacia arriba si es ≥ .5) usando el método round(). El siguiente ejemplo muestra cómo redondear números decimales con este método:

Métodos ceiling y floor

Como parte de la biblioteca math, los métodos floor() y ceil() ofrecen formas únicas de redondear decimales que pueden resultar útiles en ciertos cálculos. El método floor redondea hacia abajo al número entero más cercano hacia el infinito negativo (independientemente del valor decimal), mientras que ceiling redondea hacia arriba al entero más cercano hacia el infinito positivo. El siguiente ejemplo muestra cómo funcionan ambas funciones:

Redondeo y enteros

Las operaciones de redondeo ilustradas muestran cómo funcionan estas funciones, pero también revelan un efecto secundario: en versiones de Python anteriores a 3.0, los decimales redondeados no se convierten en enteros, sino que permanecen como decimales. Debido a la forma en que los decimales se representan en la arquitectura de los ordenadores, esto podría causar problemas en cálculos de alta precisión donde se requieren enteros. Puedes convertir un número flotante a entero usando el método int(), como en este ejemplo:

Método de ejemplo

Con este conocimiento, puedes desarrollar un método para redondear decimales a enteros fácilmente. Los siguientes ejemplos muestran breves métodos que determinan el floor y el ceiling de un número como entero, y otro que redondea a una cantidad de decimales designada por el usuario (o a un entero):