使用 fixed 和 setprecision(n) 可控制浮点数输出的小数位数,其中 n 为小数点后位数;不使用 fixed 时 setprecision(n) 控制有效数字位数,常用于货币或科学计算输出。

在C++中,使用 cout 输出浮点数时,默认只显示6位有效数字。如果需要控制输出的精度(比如保留2位小数或指定有效位数),可以通过 <iomanip> 头文件中的格式控制符来实现。
1. 使用 fixed 和 setprecision 控制小数位数
最常用的方法是结合 fixed 和 setprecision(n),其中 n 表示小数点后保留的位数。
- fixed:启用定点表示法(即固定小数位数)
- setprecision(n):设置小数点后的精确位数(当与 fixed 配合时)
示例代码:
#include <iostream>
#include <iomanip> // 必须包含这个头文件
using namespace std;
<p>int main() {
double num = 3.14159265;</p><pre class='brush:php;toolbar:false;'>cout << fixed << setprecision(2);
cout << num << endl; // 输出:3.14
return 0;}
立即学习“C++免费学习笔记(深入)”;
2. 不使用 fixed:setprecision 控制有效数字位数
如果不使用 fixed,setprecision(n) 设置的是总的有效数字位数,而不是小数点后的位数。
示例:
cout << setprecision(3); cout << 3.14159 << endl; // 输出:3.14(3位有效数字) cout << 123.456 << endl; // 输出:123
3. 恢复默认输出格式
如果想取消 fixed 格式,可以使用 defaultfloat(C++11 起支持)。
cout << defaultfloat; cout << 3.14159 << endl; // 恢复默认格式输出
4. 常见应用场景
在处理货币、测量数据或科学计算时,通常需要统一小数位数。例如:
double price = 19.9; double tax = price * 1.1; <p>cout << "价格: " << fixed << setprecision(2) << tax << " 元" << endl; // 输出:价格: 21.89 元</p>
基本上就这些。只要记住:要按小数位输出,就用 fixed + setprecision(n),简单又实用。











