05/03/2012, 07:49
|
| | Fecha de Ingreso: junio-2010 Ubicación: Madrid
Mensajes: 620
Antigüedad: 14 años, 5 meses Puntos: 73 | |
Respuesta: Quitar exponentes del double en C++ El tipo de datos double (64 bits) tiene una precisión de unos 16 dígitos, por lo que, si quieres todas las cifras decimales, a partir de ahí vas a tener todo ceros. Por ejemplo, puedes especificar:
printf("%1.20e\n", x);
te imprimirá x en formato exponencial con 20 cifras decimales (no sé cuanto sería el máximo que admite, no lo he probado), pero, como ya te dije, a partir de la 16 (aprox.) ya vas a ver todo ceros.
Existe un tipo llamado qfloat, con 384 bits (sí, has leído bien), esto correspondería a unos 100 dígitos de precisión. Un compilador que dispone de este tipo es el LCC-Win, hay versiones de 32 y 64 bits, aunque este no es C++, sino C (aunque admite algunas de las características de C++). El entorno de desarrollo que trae es un tanto pobre, pero más que suficiente si te limitas a aplicaciones en modo consola, compila rápido y ocupa poco espacio. No sé si es posible obtener librerías para este tipo en otros compiladores, o si hay otros compiladores que lo tengan.
Saludos, |