Hola, Jeff:
Las respuestas que te han dado te explican bien el motivo por el cual los números (no solo los cálculos) en coma flotante pueden no ser siempre precisos. Sin embargo, quizá no comprendas tan fácilmente la causa por la cual esto sucede.
Básicamente, se debe a que hay muchos más números en coma flotante (infinito) que el que podemos representar en un número (finito) de bytes.
Para que los comprendas mejor, imagine que tu ordenador solo permite representar 200 números enteros distintos (negativos y positivos).
Una opción sería coger el rango de -100 a 100, con lo cual tienes precisión exacta pero un rango muy pequeño.
La otra opción sería coger un rango de -1000 a 1000, que nos permite mucho mayor rango, a costa de perder precisión, puesto que nuestro ordenador solo puede representar ("almacenar") 200 números distintos.
¿Qué significa esta pérdida de precisión y cómo afecta a cómo se representan, internamente, los números en el ordenador?
Con la primera opción, había una relación directa entre un valor y su representación: al número -100 le hacíamos corresponder la representación interna -100; al número -99 le hacíamos corresponder la representación interna -99; y así sucesivamente.
Con la segunda opción (la que se aplica, a grandes rasgos, con la norma IEEE754 para coma flotante), se hace una relación entre una selección de los números (los valores que queremos representar; es decir, 2.000 valores) y se relaciona con una, y solo una, de las representaciones que permite internamente el ordenador (es decir, 200 representaciones).
En otras palabras, debemos elegir cuáles de esos 2.000 valores se corresponderán con los 200 disposnibles; por ejemplo, el valor -1000 con la representación -100, el valor -950 con la representación -99, , el valor -900 con la representación -98, y así sucesivamente.
¿Qué pasa entonces con los valores que no están representados? Se representan por uno de los que tiene a su alrededor; por ejemplo, el valor -920 se representaría con el -98 (el que habíamos hecho corresponder con el valor -900).
De esta forma, podemos utlizar más valores, pero a costa de la previsión.
Con los números flotantes, es un poco más complicado que esto (además de reglas de cálculo, hay representaciones con significado especial), pero la ideal básica es ésta.
Leer más