Inicio · Parte 00 — Pensamiento matemático desde cero
half-even (bancario): 0.5 → 0, 1.5 → 2, 2.5 → 2
half-up (aritmético): 0.5 → 1, 1.5 → 2, 2.5 → 3
Cuando el valor a redondear cae exactamente en la mitad, hay que elegir hacia dónde va, y las dos elecciones habituales tienen consecuencias estadísticas distintas. El redondeo aritmético (half-up) siempre sube, y por tanto introduce un sesgo positivo que se acumula al sumar muchos valores. El redondeo bancario (half-even) manda al par más cercano, con lo que los casos intermedios se reparten y el sesgo tiende a cero.
Por eso el estándar IEEE 754 fija half-even como modo por defecto, y por eso la función round de Python hace lo mismo: round(0.5) devuelve 0, no 1. Quien espera el comportamiento escolar lo interpreta como un bug; es la elección correcta para cadenas largas de cálculos.
Las cifras significativas son el otro lado de la misma moneda: dicen cuánta información contiene el número, no cuántos dígitos se imprimen. Un valor medido como 2.50 comunica precisión de centésimas; escrito como 2.5 comunica precisión de décimas; escrito como 2.500000 comunica una precisión que probablemente no se tiene. Reportar más dígitos de los que la medida soporta es una forma de exagerar la certeza.
La regla práctica del programa: redondear al final, nunca en pasos intermedios, y declarar siempre la regla usada. Redondear intermedio destruye información que ya no se recupera, y es una causa habitual de que dos implementaciones «iguales» devuelvan totales distintos.
Redondear los cuatro casos intermedios y medir el sesgo.
valores 0.5 1.5 2.5 3.5 suma original = 8.0
half-even 0 2 2 4 suma = 8 → sesgo 0.0
half-up 1 2 3 4 suma = 10 → sesgo +2.0
round() Python 0 2 2 4 (half-even)
Con cuatro valores el sesgo de half-up ya es de 2 unidades. Sobre un millón de importes, el descuadre es sistemático y siempre en la misma dirección.
Redondeo bancario frente a redondeo aritmético.
python classes/part-00-pensamiento-matematico-desde-cero/013-aproximacion-redondeo-y-cifras-significativas/lab.py
compmath run 013
valoresROUND_HALF_EVENROUND_HALF_UPpython_roundsesgo_half_evensesgo_half_up{
"valores": [
"0.5",
"1.5",
"2.5",
"3.5"
],
"ROUND_HALF_EVEN": [
0.0,
2.0,
2.0,
4.0
],
"ROUND_HALF_UP": [
1.0,
2.0,
3.0,
4.0
],
"python_round": [
0,
2,
2,
4
],
"sesgo_half_even": 0.0,
"sesgo_half_up": 2.0
}
Contabilidad, reparto de totales, informes de métricas y cualquier agregación de muchos valores redondeados. Es prerrequisito directo del capstone de esta parte y de la clase 034 (propagación de errores)."
Toda métrica de un modelo (accuracy, loss, learning rate) es una razón, un porcentaje o una escala. Interpretarlas mal es el primer error de un practicante de IA.
decimal — documentación de la herramienta que ejecuta el laboratorio · URL de la fuente primaria comprobada en Python Software Foundation (2026-08-19).