Evite la notación científica en ostream cuando use << con doble
-
22-09-2019 - |
Pregunta
Necesito evitar que mi doble se imprima en notación científica en mi archivo,
cuando hago esto
outfile << X;
Solución
Para establecer el formato de variables flotantes se puede utilizar una combinación de setprecision(n)
, showpoint
y fixed
. Para utilizar manipuladores corriente con parámetros como setprecision(n)
tendrá que incluir la biblioteca iomanip:
#include <iomanip>
setprecision(n)
:.-Limitará la salida flotante a lugares n
, y una vez que establezca, que se establece hasta de borra de forma explícita por el resto de la corriente de salida
fixed
: hará cumplir que todos los números de punto flotante son la salida de la misma manera. Así que si su precisión se establece en 4 lugares, 6.2
y 6.20
será tanto de salida como:
6.2000
6.2000
showpoint
: obligará a las partes decimales de una variable de coma flotante que se muestra, incluso si no se establece explícitamente. Por ejemplo, 4
se emitirá como:
4.0
El uso de todos ellos juntos:
outfile << fixed << showpoint;
outfile << setprecision(4);
outfile << x;
Otros consejos
Todas las respuestas anteriores fueron útiles, pero ninguno responde directamente a la pregunta.
outfile.setf(ios_base::fixed);
outfile << x;
Me encontró la respuesta en @moogs enlace: http: //www.cplusplus. com / referencia / iostream / ios_base / fmtflags /
He aquí un programa de demostración: http://ideone.com/FMxRp1
Aquí hay un ejemplo de uso.http://cplus.about.com/od/learning1/ss/clessontwo_4.htm
según tu pregunta usa
std::cout << std::fixed << a << std::endl;
Puede utilizar indicadores de formato