Ver Mensaje Individual
  #3 (permalink)  
Antiguo 01/01/2011, 15:12
Fw190
 
Fecha de Ingreso: junio-2010
Ubicación: Madrid
Mensajes: 620
Antigüedad: 13 años, 10 meses
Puntos: 73
Respuesta: Números double

Simplemente, la precisión es limitada. Un tipo float de 32 bits (precisión simple) te va a proporcionar entre 6 y 8 cifras significativas, y un tipo double de 64 bits (precisión doble) te va a proporcionar entre 14 y 16 cifras significativas. Por cifras significativas me refiero a la parte entera más la parte decimal.

Por el formato de los números en coma flotante (si quieres detalles mira la norma IEEE-754), el problema es menos crítico en el caso de multiplicaciones y divisiones, pero puede ser grave en el caso de sumas y restas entre números de magnitud muy diferente.

Para que te hagas una idea, piensa en que tengas que calcular con lápiz y papel, y que tienes limitado el número de cifras significativas que puedes emplear. Comprobarás que el error irá aumentando conforme encadenes las operaciones, y que no importa cuántas cifras significativas utilices, el problema se te presentará tarde o temprano.

No puedes hacer nada por evitarlo. Lo único que puedes hacer es utilizar variables en doble precisión, los cálculos son igual de rápidos que con precisión simple porque los hace el procesador de coma flotante.