Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Números double

Estas en el tema de Números double en el foro de C/C++ en Foros del Web. Pues lo primero, me presento, soy novato en este foro Quería saber por qué los números double, o en general los decimales, al ser guardados ...
  #1 (permalink)  
Antiguo 30/12/2010, 07:14
 
Fecha de Ingreso: diciembre-2010
Mensajes: 2
Antigüedad: 13 años, 2 meses
Puntos: 0
Pregunta Números double

Pues lo primero, me presento, soy novato en este foro

Quería saber por qué los números double, o en general los decimales, al ser guardados en la memoria acumulan un error de unos decimales (un error que puede llegar a ser considerable).
De hecho, si quiero hallar números decimales con gran exactitud, no puedo

¿Hay algún método para evitarlo?

Gracias de antemano.
  #2 (permalink)  
Antiguo 30/12/2010, 13:18
Avatar de aandy  
Fecha de Ingreso: diciembre-2010
Ubicación: Piura
Mensajes: 18
Antigüedad: 13 años, 3 meses
Puntos: 3
Respuesta: Números double

umm .... ese es el mayor problemas de los decimales ... es por eso que no sirven para bucles ... pues y yo he tenido ese problema .. pero esa perdida de precision es debido a conversion implicita del compilador ... intenta poniendo los parametros tipo al final del numero
Código C++:
Ver original
  1. #include <stdio.h>
  2.  
  3.  
  4. int main(){
  5.  
  6.    float decimal = 14343.302f;
  7.    cout << decimal;
  8.  
  9. }

Espero te sirva !!! Salu2!!
  #3 (permalink)  
Antiguo 01/01/2011, 15:12
 
Fecha de Ingreso: junio-2010
Ubicación: Madrid
Mensajes: 620
Antigüedad: 13 años, 9 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.
  #4 (permalink)  
Antiguo 11/01/2011, 16:40
 
Fecha de Ingreso: diciembre-2010
Mensajes: 2
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Números double

Gracias a todos, habrá que aguantarse y sobrevivir con esa imprecisión... jajajaja

Etiquetas: decimal, double
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:33.