# La coma flotante

- Sitio: Ikusmira — enciclopedia en castellano de ciencias sociales y humanidades
- URL canónica: https://ikusmira.org/p/la-coma-flotante/
- Categoría: Informática
- Publicado: 2026-09-08
- Autoría: Josemari Sarasola Ledesma — Editor coordinador; Profesor titular de escuela universitaria, Universidad del País Vasco/Euskal Herriko Unibertsitatea
- Perfiles del autor: https://ekoizpen-zientifikoa.ehu.eus/investigadores/127490/detalle, https://dialnet.unirioja.es/servlet/autor?codigo=333202
- Política editorial (autoría, revisión, correcciones, financiación): https://ikusmira.org/politica-editorial/

La **coma flotante** (en inglés, *floating point*) es la manera en que los ordenadores guardan los números con decimales. Escribe el número como una cantidad fija de cifras significativas multiplicada por una potencia de dos, igual que la notación científica lo escribe multiplicado por una potencia de diez, y así el mismo espacio sirve para la masa de un electrón y para la distancia a otra galaxia. El precio es que casi ningún decimal cabe exacto, y la consecuencia más conocida es que, en casi cualquier lenguaje de programación, la suma 0,1 + 0,2 da 0,30000000000000004.

No es un fallo del ordenador sino una cuestión de base. En el sistema decimal, un tercio no se puede escribir con un número finito de cifras: es 0,3333… y hay que cortar en algún sitio. En [binario](https://ikusmira.org/p/el-sistema-binario/) le pasa lo mismo a una décima. El 0,1 es en base dos 0,000110011001100…, con el grupo 0011 repitiéndose para siempre, y el ordenador lo corta a los 52 bits. Lo que guarda no es una décima sino el número más cercano a una décima que se puede escribir con esos bits, que es un poco más grande. Al sumar dos números que ya venían redondeados hacia arriba, el resultado cae en el número guardable siguiente al que le corresponde al 0,3, y la comparación entre los dos da falso.

La figura de esta página enseña esos 64 bits. Es el formato de doble precisión (*double precision*) de la norma IEEE 754, el que usan por defecto JavaScript, Python y las hojas de cálculo. El primer bit es el signo; los once siguientes, el exponente, que dice por qué potencia de dos hay que multiplicar, y los 52 restantes, la mantisa (*mantissa*), que son las cifras significativas. Debajo aparece lo que ese patrón de bits vale de verdad, con todas sus cifras decimales, que el ordenador nunca enseña porque las redondea al mostrarlas.



Tocar los bits enseña cómo está hecho el formato. Cambiar el último bit de la mantisa mueve el número en la decimoséptima cifra decimal, que es el tamaño del hueco entre dos números guardables vecinos. Cambiar un bit del exponente lo multiplica o lo divide por una potencia de dos, y por eso el hueco no es siempre igual: cerca de 1 los números guardables están a unas dos diezmilbillonésimas unos de otros, y cerca de mil billones, a un octavo. Pasado 2⁵³, que son unos nueve mil billones, el hueco llega a 2, y el ordenador ya no puede guardar los impares: en la figura, pedir 2⁵³ + 1 devuelve 2⁵³. Por eso los identificadores muy largos de algunas bases de datos se estropean al pasar por JavaScript si viajan como números y no como texto.

La precisión que queda es enorme para medir cosas. Quince o dieciséis cifras significativas bastan para dar la distancia de la Tierra a la Luna con un error menor que el grosor de un cabello. El peligro está en otra parte: en los errores pequeños que se acumulan. Cada operación puede redondear, y un cálculo que suma millones de veces una cantidad que no es exacta arrastra el error en cada paso.

El caso más grave ocurrió en la guerra del Golfo. El 25 de febrero de 1991, una batería de misiles Patriot en Dhahran, en Arabia Saudí, no interceptó un misil Scud iraquí, que cayó sobre un cuartel estadounidense y mató a 28 soldados. El informe de la Oficina General de Contabilidad de Estados Unidos, de 1992, explicó la causa. El reloj del sistema contaba el tiempo en décimas de segundo y lo convertía a segundos multiplicando por 0,1, guardado en un registro de 24 bits, con el mismo corte que en la figura. El error por cada décima era minúsculo, pero la batería llevaba unas cien horas encendida sin reiniciarse, y se había acumulado hasta un tercio de segundo. A la velocidad de un Scud, eso bastó para que el radar buscara el misil a más de medio kilómetro de donde estaba y lo diera por perdido. El ejército ya había distribuido una corrección, que llegó a Dhahran al día siguiente.

La norma que hoy usan todos los ordenadores es de 1985, y su principal arquitecto fue William Kahan, matemático de la Universidad de California en Berkeley, que recibió el premio Turing en 1989 por ella. Antes de IEEE 754, cada fabricante redondeaba a su manera, y un mismo programa daba resultados distintos según la máquina. La norma fijó el formato de los bits, que cada operación diera el resultado exacto redondeado al número guardable más cercano, y qué hacer en los casos límite: dividir entre cero da infinito y no detiene el programa, y operaciones sin sentido como cero entre cero dan un valor especial llamado NaN (*not a number*, no es un número). En la figura, poner todos los bits del exponente a uno lleva a esos valores. David Goldberg resumió en 1991 lo que todo programador debería saber sobre ella en un artículo cuyo título se ha convertido en una frase hecha del oficio.

De todo esto se sacan tres reglas que se aplican cada día. La primera, no comparar nunca dos resultados con decimales por igualdad exacta, sino comprobar que su diferencia es menor que una tolerancia pequeña. La segunda, no guardar dinero en coma flotante: los bancos y las tiendas en línea guardan céntimos en números enteros, que son exactos, y dividen entre cien solo al mostrarlos, porque un céntimo mal redondeado en cada una de un millón de operaciones es un descuadre de diez mil euros. La tercera, desconfiar de un cálculo largo que parte de restar dos números casi iguales, porque la resta se come las cifras que coinciden y deja al frente las que ya eran ruido. La coma flotante no es imprecisa; es precisa con respecto a sus propias reglas, y el trabajo de quien programa es conocerlas.

[El sistema binario y el bit](https://ikusmira.org/p/el-sistema-binario/) – [La codificación UTF-8](https://ikusmira.org/p/la-codificacion-utf-8/) – [La arquitectura de von Neumann](https://ikusmira.org/p/la-arquitectura-de-von-neumann/) – [Las latencias de un ordenador](https://ikusmira.org/p/las-latencias-de-un-ordenador/) – [El compilador](https://ikusmira.org/p/el-compilador/) – [El color RGB y el código hexadecimal](https://ikusmira.org/p/el-color-rgb/)

## Fuentes

- IEEE Computer Society — *IEEE Standard for Floating-Point Arithmetic (IEEE 754-2019)*, IEEE (2019) — https://doi.org/10.1109/IEEESTD.2019.8766229
- David Goldberg — *What every computer scientist should know about floating-point arithmetic*, ACM Computing Surveys 23 (1) (1991) — https://doi.org/10.1145/103162.103163
- William Kahan — *Lecture Notes on the Status of IEEE Standard 754 for Binary Floating-Point Arithmetic*, Universidad de California en Berkeley (1996) — https://people.eecs.berkeley.edu/~wkahan/ieee754status/IEEE754.PDF
- General Accounting Office de Estados Unidos — *Patriot Missile Defense: Software Problem Led to System Failure at Dhahran, Saudi Arabia (GAO/IMTEC-92-26)*, GAO (1992) — https://www.gao.gov/products/imtec-92-26

---

Cómo citar: Sarasola, Josemari (2026). «La coma flotante». Ikusmira. https://ikusmira.org/p/la-coma-flotante/
Índice del sitio para modelos: https://ikusmira.org/llms.txt
