0

最初はこれを行うためにブーストを使用lexical_castしました。しかし、C++ が double/float を表す方法により5.1、文字列に変換すると、5.0999999その範囲で何かが得られます。ということで、以下のように変換しました。

stringstream ss;
ss << 3.14159265359;
cout << ss.str();

しかし、これは私にしか与えられず3.14159、それ以上の精度が欲しい. これができることについて何か見たと思いますprintf()が、実際にはコンソールに出力するのではなく、Windows GUI プログラムに取り組んでいます。小数点以下 5 桁を超える精度を得るにはどうすればよいですか? 私は 8 で解決したいと思っていますが、10 か 11 がいいでしょう。C++ が float と double をどのように表現するかを考えると、これは多すぎますか?

4

1 に答える 1

2
ss << setprecision(12) << 3.14159265359;

また、ストリームを使用するか C printf/scanfファミリを使用するかの選択は、GUI とコンソールとは関係ありません。に相当する Costringstreamは ですsprintf

于 2012-10-04T14:12:39.763 に答える