1. 默认情况
C++默认的浮点数输出
1 2 3 4 5 6 7 8
| #include<iostream> using namespace std; int main(){ cout << 0.123456789 << endl; cout << 1.123456789 << endl; cout << 1.23456789 << endl; }
|
2. 前置补0
E.g:格式化输出时间HH:mm:ss
。倘若时间不够10,则需要在前面补0。
头文件iomanip
输出控制符setw
- 理解:set width设置输出宽度。
- 作用范围:仅对后续的<<生效一次。所以输出一次用一次。
- 输出控制符
setfill
- 理解:set fill character 设置填充的字符,不写参数的话默认是空格。
- 作用范围:自设置之后的所有<<,直到下一个
setfill
才更改。所以用一次就好啦。
1 2 3 4 5 6 7 8 9 10 11 12
| #include<iostream> #include<iomanip> using namespace std;
int main(){ int hour = 2; int minute = 33; int second = 0; cout << setw(2) << setfill('0') << hour <<":" << setw(2) << minute <<":" << setw(2) << second << endl; }
|
3. 保留有效位数
头文件iomanip
,
输出控制符setprecision
- 理解:可以设置输出精度。(总有效位数,包括整数部分)
- 作用范围:同
setfill
,可以对后续的输出产生影响。
1 2 3 4 5 6 7 8 9 10 11 12 13
| float t1 = 12345; cout << t1 <<" " << setprecision(4) << t1 << endl;
float t2 = 1.2345; cout << t2 <<" " << setprecision(4) << t2 << endl;
float t3 = 0.12345; cout << t3 <<" " << setprecision(4) << t3 << endl;
|
4. 保留小数
- 头文件
iomanip
- 流操作符
fixed
- 理解:它表示浮点输出应该以固定点或小数点表示法显示。
- 作用范围:之后所有。
fixed 操作符可能最重要的还是当它与 setprecision
操作符一起使用时,setprecision
即可以以一种新的方式显示。它将指定浮点数字的小数点后要显示的位数,而不是要显示的总有效数位数。而这通常正是我们想要的。
——摘自C语言中文网
1 2 3 4 5 6 7
| cout << fixed << setprecision(4); float big = 12345; cout << big << endl; float middle = 1.2345; cout << middle << endl; float mini = 0.12345; cout << mini << endl;
|