Ir al contenido principal

Redondear a 2 decimales en Python: 7 métodos explicados

Aprende a redondear un número a dos decimales en Python con round(), f-strings, format(), el módulo decimal, NumPy y más — con tabla comparativa de métodos.
Actualizado 2 jun 2026  · 7 min leer

Redondear números a dos decimales es una técnica importante en Python. Es especialmente útil en cálculos financieros, presentación de datos e informes científicos.

Python ofrece varios métodos para un redondeo preciso. En este tutorial, te enseño cómo redondear un número a dos decimales en Python usando funciones integradas, librerías y métodos de formateo.

Si estás empezando como analista de datos, te recomiendo el curso de DataCamp Introduction to Python para aprender las bases de Python para la manipulación y transformación de datos. Nuestro tutorial de Python NumPy también te será útil si necesitas redondear grandes arrays de números en flujos de trabajo de análisis de datos.

Resumen (TL;DR)

  • Usa round(number, 2) para redondeo aritmético: cambia el valor real.

  • Usa f"{number:.2f}" o str.format() solo para mostrar por pantalla: el float original no cambia.

  • Usa el módulo decimal cuando necesites precisión decimal exacta (p. ej., cálculos financieros).

  • Usa np.round(array, 2) para redondear un array de NumPy completo en una sola llamada.

  • Ojo con las sorpresas de precisión en floats: round(2.675, 2) devuelve 2.67, no 2.68, por cómo se almacenan los floats en memoria.

Desarrolla habilidades de aprendizaje automático

Eleva tus habilidades de aprendizaje automático al nivel de producción.
Empieza a aprender gratis

Qué son el redondeo y los decimales

Los decimales son los dígitos que aparecen justo después del punto decimal de un número. Determinan la precisión: cuantos más decimales, mayor precisión, y viceversa.

Redondear un número consiste en ajustarlo reduciendo sus cifras decimales. Se usa para simplificar y mantener consistencia entre cálculos. Aun así, redondear a un número concreto de decimales afecta a la exactitud de los resultados por los pequeños errores que introduce.

Python ofrece diferentes métodos para redondear números a dos decimales. Los siguientes ejemplos explican estas técnicas en detalle.

Usar round() para redondear un número en Python

La función round() es la función integrada de Python para redondear números de coma flotante al número de decimales indicado. Puedes especificar los decimales pasando el valor como segundo argumento. El ejemplo siguiente imprime 34.15.

# Example number to be rounded
number = 34.14559

# Rounding the number to 2 decimal places
rounded_number = round(number, 2)

print(rounded_number)

# 34.15

La función round() de Python usa "round half to even" como modo de redondeo por defecto cuando omites el segundo argumento. El redondeo al par (bankers’ rounding) significa que cuando un número está exactamente a mitad de camino entre dos enteros, se redondea al entero par más cercano. Esta técnica ayuda a minimizar errores acumulados de redondeo.

Cuidado con la precisión de float con round()

Hay un detalle sutil que conviene conocer antes de usar round() en código financiero. Prueba esto:

print(round(2.675, 2))  # You might expect 2.68
# Output: 2.67

El resultado es 2.67, no 2.68. El valor 2.675 no puede representarse exactamente en coma flotante binaria (IEEE 754); el valor almacenado es ligeramente menor que 2.675, así que Python redondea hacia abajo.

Si necesitas un redondeo exacto para cálculos financieros, usa el módulo decimal con un modo de redondeo explícito:

from decimal import Decimal, ROUND_HALF_UP

result = Decimal("2.675").quantize(Decimal("0.01"), rounding=ROUND_HALF_UP)
print(result)  # 2.68

Usar técnicas de formateo de cadenas para redondear en Python

Las técnicas de formateo de cadenas son útiles para redondear a dos decimales cuando vas a mostrar el número en la salida.

Ten en cuenta que al usar formateo de cadenas para redondear, lo que obtienes es una cadena formateada: el número original no cambia. Si haces cálculos con el original, se basarán en el valor sin redondear y pueden darte resultados inesperados.

Redondear con el operador %

El operador % ofrece un método tradicional para dar formato a números con dos decimales. Permite crear cadenas formateadas insertando valores en marcadores de posición.

En el ejemplo, f indica que el valor es de coma flotante y .2 especifica que se muestre con dos decimales.

# Example number to be rounded
number = 3.14159

# Using the % operator to round to 2 decimal places
formatted_number = "%.2f" % number

print(formatted_number)

# 3.14

Redondear con str.format()

El método str.format() ofrece una forma más flexible de gestionar formateos complejos. Al permitir marcadores con nombre, muchos desarrolladores lo prefieren frente al operador %. En el ejemplo, :.2f dentro de las llaves indica que el número se muestre con dos decimales. El código imprimirá 3.14.

# Example number to be rounded
number = 3.14159

# Using str.format() to round to 2 decimal places
formatted_number = "{:.2f}".format(number)

print(formatted_number)

# 3.14

Redondear con f-strings (Python 3.6+)

Las f-strings llegaron en Python 3.6 y hoy son la forma preferida de incrustar valores en cadenas. La sintaxis de f-strings es especialmente limpia para redondear: tienes el formateo en una sola línea sin llamadas adicionales. El siguiente código imprime 14.68.

# Example number to be rounded
number = 14.67856

# Using f-strings to round to 2 decimal places
formatted_number = f"{number:.2f}"

print(formatted_number)

# 14.68

Usar format() para redondear un número en Python

La función integrada format() recibe un valor y una especificación de formato y devuelve una cadena formateada. A diferencia de str.format(), pasas el número directamente en lugar de incrustarlo en una plantilla. El siguiente código imprime 345.69.

# Example number to be rounded
number = 345.68776

# Using the built-in format() to round to 2 decimal places
formatted_number = format(number, ".2f")

print(formatted_number)

# 345.69

Usar otros módulos para redondear un número en Python

Más allá de Python básico, hay otros módulos que puedes usar para redondear números. Te muestro tres ejemplos destacados: math, decimal y NumPy.

Redondear con el módulo math

El módulo math no ofrece funciones que redondeen directamente a un número específico de decimales. Sin embargo, puedes combinarlo con operaciones aritméticas para redondear a dos decimales.

La función math.floor() redondea hacia abajo al entero más cercano. Para redondear hacia abajo a dos decimales, multiplica por 100, aplica math.floor() y divide entre 100. El siguiente código imprime 3.14.

# Import math module
import math

# Example number to be rounded
number = 3.14159

# Using math.floor() to round down to 2 decimal places
rounded_down = math.floor(number * 100) / 100

print(rounded_down)

# 3.14

De forma similar, math.ceil() redondea hacia arriba al entero más cercano. Para redondear hacia arriba a dos decimales, multiplica por 100, aplica math.ceil() y divide entre 100. El siguiente código imprime 3.15.

# Import the math module
import math

# Example number to be rounded
number = 3.14159

# Using math.ceil() to round up to 2 decimal places
rounded_up = math.ceil(number * 100) / 100

print(rounded_up)

# 3.15

Redondear con el módulo decimal

El módulo decimal en Python es útil para redondear con precisión usando el método .quantize(). En el ejemplo, fijamos la precisión a 0.01 para indicar que queremos dos decimales.

# Import the decimal module
from decimal import Decimal

# Example number to be rounded
number = Decimal("18.73869")

# Define the rounding precision to 2 decimal places
precision = Decimal('0.01')

# Using the quantize method with ROUND_UP 
# to round the number up to 2 decimal places
rounded_number = number.quantize(precision)

print(rounded_number)

# 18.74

Si buscas un comportamiento de redondeo siempre hacia arriba, echa un vistazo a nuestro tutorial How to Round Up a Number in Python para aprender más sobre los módulos math y decimal, y otras técnicas que garantizan que el número siempre suba, en lugar de bajar. Si quieres profundizar en la transformación de datos en general, revisa nuestro itinerario Data Analyst with Python para potenciar tus habilidades analíticas.

Redondear con NumPy

Al trabajar con arrays en NumPy, usa np.round() para redondear todos los elementos de una vez. Es más rápido y legible que iterar manualmente.

import numpy as np

prices = np.array([1.2345, 9.8765, 3.14159])
rounded_prices = np.round(prices, 2)

print(rounded_prices)
# [1.23 9.88 3.14]

np.round() aplica la misma regla de redondeo al par que la función integrada round() de Python. El método .round() funciona igual en DataFrames y Series de pandas:

import pandas as pd

df = pd.DataFrame({"price": [1.2345, 9.8765, 3.14159]})
df["price_rounded"] = df["price"].round(2)

print(df)
#      price  price_rounded
# 0   1.2345           1.23
# 1   9.8765           9.88
# 2  3.14159           3.14

Para una visión más amplia de la transformación de datos con pandas, consulta nuestro tutorial de pandas.

Cuándo usar cada método de redondeo en Python

Guía rápida para elegir el enfoque adecuado:

Método Ideal para ¿Cambia el valor? Devuelve
round(x, 2) Aritmética general float
f"{x:.2f}" Mostrar / imprimir No str
str.format() Mostrar / imprimir No str
% operator Mostrar / imprimir (legado) No str
format(x, ".2f") Mostrar / valor único No str
math.floor() / ceil() Redondear siempre abajo / arriba float
Decimal.quantize() Finanzas / decimal exacto Decimal
np.round(arr, 2) Arrays de NumPy ndarray

Algunas reglas prácticas para elegir:

  • ¿Solo necesitas mostrar un número? Usa una f-string (f"{x:.2f}"). Una línea, sin imports y sin efectos sobre el valor original.

  • ¿Vas a seguir calculando con el resultado? Usa round(x, 2). Devuelve un float con el que puedes continuar operando.

  • ¿Código financiero o contable? Usa Decimal.quantize(). Las sorpresas de precisión con floats (round(2.675, 2) == 2.67) no ocurren con el módulo decimal.

  • ¿Necesitas subir siempre o bajar siempre? Usa math.ceil() o math.floor(). Ignoran las reglas de redondeo habituales.

  • ¿Trabajas con un array de NumPy o una columna de pandas? Usa np.round(arr, 2) o series.round(2). Gestionan la colección completa de una vez.

  • ¿Manteniendo código antiguo? El operador % sigue funcionando, pero las f-strings lo sustituyeron en Python 3.6: mejor úsalas en código nuevo.

Conclusiones

Redondear a dos decimales es clave para mejorar la precisión en cálculos financieros y científicos. En este artículo, hemos visto los distintos métodos para redondear a dos decimales, incluidas funciones integradas, técnicas de formateo de cadenas y el módulo math. Es importante entender y elegir el método adecuado según lo que necesites: precisión, estilo de formato, etc. Te animo a practicar con distintos ejemplos para identificar qué encaja mejor en cada caso.

Si quieres llevar tus habilidades de Python más lejos, revisa nuestro itinerario de habilidades Python Programming, que cubre funciones, decoradores y patrones avanzados de Python. Nuestro itinerario profesional Python Developer también está diseñado para ayudarte en tu formación continua como desarrollador mientras aprendes estructuras de datos y algoritmos más avanzados.

Conviértete en un Científico ML

Domina las habilidades de Python para convertirte en un científico del aprendizaje automático

Allan Ouko's photo
Author
Allan Ouko
LinkedIn
Creo artículos que simplifican la ciencia de los datos y la analítica, haciéndolos fáciles de entender y accesibles.

Preguntas frecuentes

¿Cuál es la forma más simple de redondear un número a dos decimales en Python?

La forma más sencilla es usar la función integrada round().

¿Por qué un número se redondea al entero más cercano al usar la función round()?

El método por defecto de round() es redondeo al par (round half to even). Para redondear a dos decimales, debes pasar el segundo argumento como 2, es decir, round(3.14159, 2).

¿Cómo se usa la función format() para redondear un número a dos decimales?

La función format() se usa para mostrar un número con el número de decimales especificado dentro de una cadena formateada.

¿Qué es el round half to even?

El método round half to even, o redondeo al par (bankers’ rounding), consiste en que un número exactamente a mitad entre dos enteros se redondea al entero par más cercano.

¿El módulo math permite redondear a dos decimales en Python?

Solo puedes usar math.floor() y math.ceil() combinadas con otras operaciones para redondear a un número concreto de decimales.

¿Por qué round(2.675, 2) devuelve 2.67 en vez de 2.68?

Es un problema de precisión en coma flotante. El valor 2.675 no puede representarse exactamente en binario (IEEE 754); el valor almacenado es ligeramente menor que 2.675, por eso Python redondea a 2.67.

Para evitarlo en código financiero, usa el módulo decimal con un modo de redondeo explícito: Decimal("2.675").quantize(Decimal("0.01"), rounding=ROUND_HALF_UP) devuelve 2.68 como esperas.

¿Cómo redondeo todos los valores de un DataFrame de pandas a 2 decimales?

Usa el método .round() sobre un DataFrame o Series. Para redondear una sola columna: df["price"] = df["price"].round(2). Para redondear todas las columnas numéricas a la vez: df = df.round(2).

Temas

Aprende Python con DataCamp

Curso

Introducción a Python

4 h
6.9M
Domina los fundamentos del análisis de datos con Python en cuatro horas y descubre sus paquetes más usados.
Ver detallesRight Arrow
Iniciar curso
Ver másRight Arrow
Relacionado

Tutorial

Formato f-string en Python

Conozca la técnica de formateo f-string en Python 3.6. En este tutorial, verá qué ventajas ofrece y repasará algunos casos de uso de ejemplo.
Hafeezul Kareem Shaik's photo

Hafeezul Kareem Shaik

Tutorial

Tutorial de Python String format()

Aprende a formatear cadenas en Python.
DataCamp Team's photo

DataCamp Team

Tutorial

Tutorial sobre cómo concatenar cadenas en Python

Aprende varios métodos para concatenar cadenas en Python, con ejemplos que ilustran cada técnica.
DataCamp Team's photo

DataCamp Team

Tutorial

Caché de Python: Dos métodos sencillos

Aprende a utilizar decoradores como @functools.lru_cache o @functools.cache para almacenar funciones en caché en Python.
Stephen Gruppetta's photo

Stephen Gruppetta

Tutorial

Funciones en Python: cómo llamar y escribir funciones

Descubre cómo escribir funciones en Python reutilizables y eficientes. Domina los parámetros, las sentencias return y temas avanzados como las funciones lambda. Organiza mejor tu código con main() y otras buenas prácticas.
Karlijn Willems's photo

Karlijn Willems

Ver másVer más