web-dev-qa-db-ja.com

<<をdoubleとともに使用する場合、ostreamでの科学的表記を防止します

ファイルに科学表記法で印刷するために二重を防ぐ必要があります。

私がこれをするとき

outfile << X;
35
DogDog

浮動変数のフォーマットを設定するには、 setprecision(n)showpoint および fixedの組み合わせを使用できますsetprecision(n)のようなパラメータ化されたストリームマニピュレータを使用するには、iomanipライブラリを含める必要があります。

#include <iomanip>

setprecision(n):フローティング出力をnの場所に制限し、一度設定すると、残りのストリーム出力に対して明示的に設定解除するまで設定されます。

fixed:すべての浮動小数点数が同じように出力されるように強制します。したがって、精度が4桁に設定されている場合、6.2、および6.20はどちらも次のように出力されます。

6.2000
6.2000

showpoint:明示的に設定されていなくても、浮動小数点変数の小数部分が強制的に表示されます。たとえば、4は次のように出力されます。

4.0

それらをすべて一緒に使用する:

outfile << fixed << showpoint;
outfile << setprecision(4);
outfile << x;
36
davecoulter

これが使用例です http://cplus.about.com/od/learning1/ss/clessontwo_4.htm

あなたの質問に従って

  std::cout << std::fixed << a << std::endl;
7
Rozuur

上記の回答はすべて役に立ちましたが、質問に直接回答するものはありません。

outfile.setf(ios_base::fixed);
outfile << x;

私は@moogsリンクで答えを見つけました: http://www.cplusplus.com/reference/iostream/ios_base/fmtflags/

これがデモプログラムです: http://ideone.com/FMxRp1

6
matiu

あなたはフォーマットフラグを使うことができます

http://en.cppreference.com/w/cpp/io/ios_base/fmtflags

2
moogs