Hoy veremos cómo redondear números flotantes o float en Python de 3 maneras: redondear hacia abajo (entero anterior más cercano), redondear hacia arriba (entero siguiente más cercano) o redondear según la parte fraccionaria.
Por otro lado, te mostraré cómo redondear un número a 2 decimales, a través de un ejemplo.
Por ejemplo, tenemos el número 1.4
- Si lo redondeamos hacia abajo se convierte en 1
- En caso de ser redondeado hacia arriba se convierte en 2
- Finalmente, si se redondea basado en la parte decimal, se convierte en 1; ya que solo si fuera mayor o igual que1.5se convertiría en2.
Python ofrece las 3 maneras de hacerlo usando las funciones floor, round y ceil.
Redondear números con Python
Vamos a hacerlo rápido. Para redondear un número basado en su parte decimal (sube si es mayor o igual que .5) se usa a round.
En cambio, para redondear hacia abajo se usa floor y para redondear hacia arriba se usa ceil. Estas dos últimas funciones están dentro de math, por lo que hay que importarlas.
"""
  3 maneras de redondear números en Python
  @author parzibyte
"""
# Si usas ceil y floor importa a math
import math
numero = 1.4
redondeado = round(numero)
redondeado_abajo = math.floor(numero)
redondeado_arriba = math.ceil(numero)
print("Redondeado con round: {}".format(redondeado))
print("Redondeado con floor (hacia abajo): {}".format(redondeado_abajo))
print("Redondeado con ceil (hacia arriba): {}".format(redondeado_arriba))
# Otro ejemplo con round
numero = 1.5
redondeado = round(numero)
print("round(1.5): {}".format(redondeado))
No te confundas con la función round. Si la parte fraccionaria es mayor o igual que la mitad, se irá hacia arriba. Si no, hacia abajo.
Por cierto, en el ejemplo probamos con el número 1.4, pero puede ser cualquier número.
Redondear a 2 decimales
Si quieres redondear a 2, 3, 4 o más decimales, pasa un segundo argumento a la función round. Por ejemplo, si quieres redondear a 2 decimales con Python, sería:
# https://parzibyte.me/blog/
numero = 15.85489498987
redondeado = round(numero, 2)
print(redondeado)
"""
Salida: 
15.85
"""
Fíjate que el segundo argumento que se pasa a round es 2, para redondear a 2 decimales.