Función round() en Python explicada con ejemplos prácticos
Función round() en Python explicada
La función integrada round() es una herramienta básica para el trabajo numérico en Python. Devuelve un valor redondeado a un número específico de decimales, por defecto al entero más cercano cuando no se proporciona precisión.
Sintaxis
round(numero, ndigits=None)
- numero – El valor numérico a redondear.
- ndigits – Opcional; el número de decimales a mantener. Si se omite, el resultado es un entero.
Valor de retorno
Cuando ndigits se omite, round() devuelve un int. Si se proporciona ndigits, el resultado es un float redondeado a esa precisión.
Reglas de redondeo
- Si el dígito siguiente a la posición objetivo es 5 o mayor, el valor se redondea hacia arriba.
- Si es menor que 5, el valor se trunca en la precisión especificada.
Por qué importa el redondeo: un ejemplo real
En los mercados financieros, el redondeo puede influir en millones de dólares en operaciones. Por ejemplo, la Bolsa de Vancouver en 1982 truncaba los precios de las operaciones a tres decimales, lo que provocaba una pérdida acumulada mensual de unos 25 puntos. Redondear en lugar de truncar produce resultados mucho más precisos.
# Ejemplo: Truncar vs. Redondear
import random
def truncar(num):
return int(num * 1000) / 1000
arr = [random.uniform(0.01, 0.05) for _ in range(1_000_000)]
# Truncamiento
suma_truncar = 0
for val in arr:
suma_truncar = truncar(suma_truncar + val)
# Redondeo
suma_redondear = 0
for val in arr:
suma_redondear = round(suma_redondear + val, 3)
print("Suma truncada:", suma_truncar)
print("Suma redondeada:", suma_redondear)
El total truncado puede desviarse en cientos de unidades, mientras que el redondeo mantiene la desviación en una fracción de unidad.
Casos de uso comunes
Redondeo de números de punto flotante
# Redondeo básico print(round(10.60)) # 11 print(round(10.40)) # 10 print(round(10.3456, 2)) # 10.35 print(round(10.3445, 2)) # 10.34
Redondeo de enteros
print(round(15)) # 15
Redondeo de números negativos
print(round(-2.8)) # -3 print(round(-1.5)) # -2
Redondeo de arrays NumPy
import numpy as np arr = [-0.341111, 1.455098989, 4.232323, -0.3432326, 7.626632, 5.122323] print(np.round(arr, 2)) # [-0.34 1.46 4.23 -0.34 7.63 5.12]
Uso del módulo Decimal para precisión
El módulo decimal ofrece control más fino sobre los modos de redondeo.
import decimal
num = decimal.Decimal('15.456')
print(num.quantize(decimal.Decimal('0.00'), rounding=decimal.ROUND_HALF_UP)) # 15.46
Conclusiones clave
- Usa
round(numero, ndigits)para redondeo estándar. - Omitir
ndigitsdevuelve un entero; proporcionarlo devuelve un flotante. - Para cálculos financieros o científicos críticos, considera
decimalpara redondeo determinista.
python
- Sobrecarga de operadores en C++: Guía práctica con ejemplos de código
- Funciones en C++ Explicadas con Ejemplos de Código Prácticos
- Funciones lambda en Python: Guía práctica de funciones anónimas
- Generadores en Python: Iteración Eficiente y Casos de Uso Avanzados
- Explicación de Closures en Python: Cómo las Funciones Anidadas Capturan Variables
- Dominando Decoradores en Python: Mejora Funciones con Técnicas Expertas
- Función print() en Python: Guía Práctica con Ejemplos
- Domine el Método strip() de Python: Guía Completa y Ejemplos Prácticos
- Domine str.count() en Python: Cómo Contar Caracteres y Subcadenas con Ejemplos
- Domine el Formateo de Strings en Python con format(): Ejemplos Claros
- Domine el Método String.find() en Python: Sintaxis, Ejemplos y Alternativas