2010-02-25 20 views
27

necesito para evitar mi doble para imprimir en notación científica en mi archivo,Prevenir la notación científica en ostream cuando se utiliza con doble <<

cuando hago esto

outfile << X; 
+1

relacionado para otros idiomas: [Haskell] (http://stackoverflow.com/questions/8098457/how-do-i-get-to-haskell-to-output-numbers-not-in-scientific-notación) [Lua] (http://stackoverflow.com/questions/1133639/how-can-i-print -a-huge-number-in-lua-without-using-scientific-notación) [C++ ostreams] (http://stackoverflow.com/questions/2335657/prevent-scientific-notation-in-ostream-when-using- con-doble) [Delphi] (http://stackoverflow.com/questions/6077153/how-to-disable-scie ntific-notation-in-asstring-in-delphi) –

Respuesta

30

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): restringirá la salida flotante a n lugares, y una vez que establezca, se establece hasta que explícitamente desarmado por el resto de la salida de la secuencia.

fixed: hará cumplir que todos los números de punto flotante se envían de la misma manera. Así que si su precisión se establece en 4 lugares, 6.2 y 6.20 ambos serán de salida como:

6.2000 
6.2000 

showpoint: obligará a las partes decimales de una variable de coma flotante que se mostrarán, incluso si no es explícitamente conjunto. Por ejemplo, 4 se emitirá como:

4.0 

Utilizando todos juntos:

+1

¿Qué te hace pensar que el punto de vista hace alguna diferencia aquí? La porción decimal siempre se muestra con 0 debido a la precisión. – Ident

Cuestiones relacionadas