HERRAMIENTA · CIENCIA DE LA COMPUTACIÓN

Punto flotante IEEE 754

Mira cómo guarda la computadora un número con decimales: bit de signo, exponente con sesgo y mantisa, y cuánto error se comete al hacerlo.

Cargando herramienta…

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.