Inicio · Parte 01 — Aritmética computacional y representación numérica
punto fijo: valor = entero · 10⁻ᵏ (exacto en su rango)
punto flotante: valor = mantisa · 2^exponente (precisión relativa constante)
Las dos representaciones responden a necesidades distintas. En punto fijo se guarda un entero y se acuerda dónde está la coma: el dinero se guarda en centavos, y todas las operaciones son aritmética entera exacta. El espaciado entre valores representables es constante —un centavo— en todo el rango.
En punto flotante se guarda una mantisa y un exponente, y el espaciado crece con la magnitud: cerca de 1 los floats están separados por unos 2⁻⁵², y cerca de 10⁶ por unos 2⁻³². Eso significa precisión relativa constante: siempre unos 16 dígitos significativos, independientemente de la escala. Es la elección correcta para magnitudes físicas que abarcan muchos órdenes de magnitud.
La consecuencia para dinero es directa y conocida: sumar 0.1 diez veces en float no da exactamente 1.0, porque 0.1 no es representable en binario. Sumar 10 veces el entero 10 (centavos) da exactamente 100. Por eso todo sistema contable serio trabaja en punto fijo o con Decimal.
El criterio para elegir: si los valores tienen una unidad mínima natural y las comparaciones exactas importan (dinero, contadores, índices), punto fijo. Si los valores abarcan varios órdenes de magnitud y lo que importa es la precisión relativa (física, estadística, gradientes), punto flotante.
Sumar diez veces una décima por los dos caminos.
Punto flotante:
0.0 + 0.1 repetido 10 veces = 0.9999999999999999
¿es exactamente 1.0? No
error = 1.11e−16
Punto fijo (centavos como enteros):
0 + 10 repetido 10 veces = 100
100 / 100 = 1.0
exacto: sí, porque toda la aritmética fue entera
El error del flotante es minúsculo. El problema no es su tamaño: es que rompe la comparación total == 1.0, que es exactamente la que hace un sistema de facturación.
Punto fijo (centavos enteros) frente a punto flotante.
python classes/part-01-aritmetica-computacional-y-representacion-numerica/027-punto-fijo-frente-a-punto-flotante/lab.py
compmath run 027
suma_float_de_0.1_x10es_exactamente_1.0errorsuma_en_centavos_enteroscentavos_a_unidadespunto_fijo_exacto{
"suma_float_de_0.1_x10": 0.9999999999999999,
"es_exactamente_1.0": false,
"error": 1.1102230246251565e-16,
"suma_en_centavos_enteros": 100,
"centavos_a_unidades": 1.0,
"punto_fijo_exacto": true
}
Contabilidad, facturación e inventario en punto fijo; física, estadística y deep learning en punto flotante. La cuantización de modelos a int8 es una vuelta al punto fijo por razones de memoria.
float32, bfloat16 y la cuantización a int8 son decisiones de representación. Los NaN en un entrenamiento casi siempre nacen aquí, no en la arquitectura.
10.1145/103162.103163 verificado en Crossref (2026-08-19).decimal — documentación de la herramienta que ejecuta el laboratorio · URL de la fuente primaria comprobada en Python Software Foundation (2026-08-19).