Notación científica en binario
IEEE 754 es el estándar que usan prácticamente todos los procesadores para los números reales. Funciona como la notación científica, pero en base 2: valor = (−1)s × 1.m × 2e − sesgo. En simple precisión (float) hay 1 bit de signo, 8 de exponente con sesgo 127 y 23 de mantisa; en doble precisión (double), 1, 11 con sesgo 1023 y 52. El “1.” delante de la mantisa no se guarda: está implícito y regala un bit de precisión.
Casos especiales
- Cero: exponente y mantisa en cero (existe +0 y −0).
- Subnormales: exponente en cero y mantisa distinta de cero; permiten acercarse a cero de forma gradual perdiendo precisión.
- Infinito: exponente con todos los bits en 1 y mantisa en cero; aparece, por ejemplo, al dividir entre cero.
- NaN: exponente en unos y mantisa distinta de cero; resultado de operaciones indefinidas como 0/0.
Ejemplo resuelto: −13.25 en 32 bits
13.25 = 1101.01₂ = 1.10101₂ × 2³. Signo = 1 (negativo). Exponente = 3 + 127 = 130 = 10000010₂. Mantisa = 10101 seguido de ceros hasta 23 bits. Resultado: 1 10000010 10101000000000000000000 = 0xC1540000. Como 13.25 tiene una parte decimal que es suma de potencias de 2 (0.25 = 2⁻²), se guarda exactamente. En cambio, 0.1 en binario es periódico (0.000110011…₂) y se redondea: en doble precisión se guarda 0.1000000000000000055511151231257827.
Errores comunes
- Comparar números flotantes con ==: compara con una tolerancia, |a − b| < ε.
- Usar float para dinero: los céntimos no se representan exactamente; usa enteros de céntimos o tipos decimales.
- Sumar números de magnitudes muy distintas: el pequeño puede perderse por completo.
Preguntas frecuentes
¿Por qué 0.1 + 0.2 no da 0.3?
Porque ninguno de los tres se representa exactamente en binario; la suma de los redondeos da 0.30000000000000004 en doble precisión.
¿Cuántas cifras decimales tiene un float?
Unas 7 cifras significativas en simple precisión y unas 15 o 16 en doble.
¿Qué precisión usa Python o JavaScript?
Los float de Python y los Number de JavaScript son de doble precisión (64 bits). Compruébalo en el Code Lab.
Herramienta educativa. Los resultados se calculan en tu navegador; ningún dato se envía a un servidor.