C++ 获得cout的精度

C++ 获得cout的精度,c++,precision,cout,C++,Precision,Cout,我可以使用 cout.precision(precision_value); 如何获得精度值,该值已被cout使用? 我在cout中找不到任何其他相关函数 我面临的相关问题是,如何仅更改代码某些部分的cout精度(因此需要在之后将其重置为精确的先前值) 我试着: //save original cout flags std::ios_base::fmtflags coutFlags = cout.flags(); cout.precision(1); cout.setf(ios::fixed

我可以使用

cout.precision(precision_value);
如何获得精度值,该值已被
cout
使用? 我在
cout
中找不到任何其他相关函数

我面临的相关问题是,如何仅更改代码某些部分的cout精度(因此需要在之后将其重置为精确的先前值)

我试着:

//save original cout flags
std::ios_base::fmtflags coutFlags = cout.flags();

cout.precision(1);
cout.setf(ios::fixed);

 // code

cout.flags(coutFlags);
但这不起作用。

使用该函数

intmain(){
std::cout函数为。两个重载都返回调用函数之前设置的精度。
cout.precision()
可能是您要查询的

要保存它并稍后将其设置回原位,请执行以下操作:

auto old_precision = cout.precision(temp_precision);
// do stuff
cout.precision(old_precision);

为什么不使用一个变量并每次修改它?
cout.setf(ios::fixed);
覆盖所有标志,而不仅仅是感兴趣的标志。我最近犯了同样的错误:。哦,我完全错过了返回值。正在寻找另一个函数。谢谢。
auto old_precision = cout.precision(temp_precision);
// do stuff
cout.precision(old_precision);