Ver Mensaje Individual
  #5 (permalink)  
Antiguo 04/07/2012, 10:40
Fw190
 
Fecha de Ingreso: junio-2010
Ubicación: Madrid
Mensajes: 620
Antigüedad: 14 años, 5 meses
Puntos: 73
Respuesta: Número de decimales según tipo de dato

Para más dígitos tendríamos:

long double es el tipo con el que trabaja internamente la unidad de coma flotante. Son 80 bits (10 bytes), y te daría una precisión de unas 20 cifras significativas. Comprueba que dispones de el realmente, hay compiladores (creo que Visual C es uno de ellos) que te toma el tipo long double como sinónimo de double. Ojo, si compruebas el tamaño podría indicarte que ocupa 12 bytes (96 bits) ó 16 bytes (128 bits) por razones de direccionamiento de memoria, pero solamente te estaría usando los 80 bits.

El compilador GNU C, a partir de la versión 4.3 (creo) tiene un tipo (no estandar) __float128 (comienza con dos guiones bajos), de 128 bits (16 bytes). Con este tipo tendrías unas 34 cifras significativas.

Algunos compiladores disponen de un tipo qfloat de 384 bits (48 bytes) (no, no es un error). Con este tipo dispondrías de unas 100 cifras significativas. Por ejemplo, el compilador LCC-Win32. Es un compilador C (no C++, aunque tiene algunas características de C++), su IDE deja mucho que desear, pero es rápido y ocupa poca memoria.

Si utilizas alguno de estos tipos, ten en cuenta que podrían necesitar especificadores de formato especiales, o versiones especiales de las funciones scanf/printf/cin/cout (y familia) para entrada/salida de datos, consulta los manuales correspondientes.

También puedes utilizar alguna librería de precisión arbitraria, basta con rezar a San Google.