3

私はいくつかの計算を行っており、結果はファイルに保存されています。double変数の精度に近い非常に正確な結果を出力する必要があり、そのためにiomanip setprecision(int)を使用しています。問題は、次のように、出力のどこにでもsetprecisionを配置する必要があることです。

func1() {
cout<<setprecision(12)<<value;
cout<<setprecision(10)<<value2;
}
func2() {
cout<<setprecision(17)<<value4;
cout<<setprecision(3)<<value42;
}

そして、それは非常に面倒です。より一般的にcout固定修飾子を設定する方法はありますか?

ありがとう

4

2 に答える 2

7

cout.precisionをお探しですか?

于 2010-05-05T16:16:50.603 に答える
1

C ++ 20ではstd::format、デフォルトで最短の小数表現を提供するを使用できるため、手動で指定しなくても精度が低下することはありません。例えば:

std::cout << std::format("{}", M_PI);

プリント

3.141592653589793

固定精度が必要な場合は、それを変数に保存して、複数の場所で再利用できます。

int precision = 10;
std::cout << std::format("{:.{}}", value, precision);
于 2021-03-05T00:25:16.693 に答える