setprecision用于控制浮点数输出精度,包含在<iomanip>头文件中。不使用fixed时,setprecision(n)设置有效数字总位数;配合fixed时,指定小数点后保留n位。例如cout << setprecision(5) << 3.1415926输出3.1416(5位有效数字),而cout << fixed << setprecision(5) << 3.1415926输出3.14159(保留5位小数)。常用于保留两位小数等场景,如金融计算,自动四舍五入。需注意其作用持续有效,可通过cout.unsetf(ios::fixed)恢复默认格式。关键点是:控制小数点后位数需搭配fixed使用。

在C++中,setprecision 是用来控制浮点数输出精度的常用方法,通常用于控制小数点后保留的位数。它定义在 <iomanip> 头文件中,需要包含该头文件才能使用。
基本用法
setprecision(n) 设置浮点数输出时总共显示的有效数字位数(默认是总位数,不是小数点后的位数),具体行为取决于是否配合 fixed 使用。
示例代码:#include <iostream>
#include <iomanip>
using namespace std;
int main() {
double num = 3.1415926;
cout << setprecision(5) << num << endl;
// 输出:3.1416 (共5位有效数字)
cout << fixed << setprecision(5) << num << endl;
// 输出:3.14159 (小数点后5位)
return 0;
}
fixed 与 setprecision 的关系
如果不使用 fixed,setprecision(n) 表示整个数值的有效数字位数(科学计数法或普通形式)。
如果使用了 fixed,则 setprecision(n) 表示小数点后保留 n 位。
立即学习“C++免费学习笔记(深入)”;
- cout << setprecision(3) << 3.14159; → 输出:3.14(3位有效数字)
- cout << fixed << setprecision(3) << 3.14159; → 输出:3.142(保留3位小数)
常见用途:保留两位小数
在金融、成绩统计等场景中,经常需要保留两位小数输出。
cout << fixed << setprecision(2) << 123.456; // 输出:123.46
注意会自动四舍五入。
注意事项
- 必须包含头文件 <iomanip>。
- setprecision 的设置在后续输出中持续有效,直到再次更改。
- 若要恢复默认格式,可使用 cout.unsetf(ios::fixed) 或重新设置格式。











