函数
<iomanip>

std::setprecision

/*unspecified*/ setprecision (int n);
设置小数精度
设置用于在输出操作中格式化浮点值的小数精度

其行为如同在作为操纵符插入/提取的流上,以 n 为参数调用了成员函数 precision(它可以被插入/提取到输入流输出流上)。

此操纵符在头文件 <iomanip> 中声明。

参数

n
小数精度的新值。

返回值

未指定。此函数只应作为流操纵符使用(见示例)。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
// setprecision example
#include <iostream>     // std::cout, std::fixed
#include <iomanip>      // std::setprecision

int main () {
  double f =3.14159;
  std::cout << std::setprecision(5) << f << '\n';
  std::cout << std::setprecision(9) << f << '\n';
  std::cout << std::fixed;
  std::cout << std::setprecision(5) << f << '\n';
  std::cout << std::setprecision(9) << f << '\n';
  return 0;
}

输出
3.1416
3.14159
3.14159
3.141590000


数据竞争

它被插入/提取到的流对象会被修改。
对同一流对象的并发访问可能会引发数据竞争。

异常安全

基本保证:如果抛出异常,流处于有效状态。

另见