本文的三个函数均需要引入头文件:#include <iomanip>
设置输出精度 setprecision(int n)
参考:C语言中文网:c++ setprecision用法详解
// 写法1
cout << setprecision(10) << a << endl;
// 写法2:a、b、c都将以10位有效位输出
cout << setprecision(10);
cout << a << endl;
cout << b << endl;
cout << c << endl;
- setprecision设置的是有效位数,即出现在小数点前后的总位数。
- 默认情况下,系统使用6个有效位显示浮点值。
- 如果设置的有效位数小于原数的位数,setprecision将四舍五入,而不是截断数字。
- 如果设置的有效位数大于原数的位数,则setprecision不起作用,还是按照原数显示。
- 末尾的零将被省略。因此,尽管指定了 setprecision(5),但是 21.40 仍显示为 21.4。
- 与 setw 字段宽度不同的是,setprecision 的精度设置将保持有效,直到更改为其他值为止。
- 可以通过
cout.precision()
查看当前的输出精度。
设置域宽setw(int n)
- setw() 函数只对紧接着的输出产生作用。
- 当后面紧跟着的输出字段长度小于 n 的时候,在该字段前面用空格补齐,当输出字段长度大于 n 时,全部整体输出。
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
// 开头设置宽度为 4,后面的 runoob 字符长度大于 4,所以不起作用
cout << setw(4) << "runoob" << endl;
// 中间位置设置宽度为 4,后面的 runoob 字符长度大于 4,所以不起作用
cout << "runoob" << setw(4) << "runoob" << endl;
// 开头设置间距为 14,后面 runoob 字符数为6,前面补充 8 个空格
cout << setw(14) << "runoob" << endl;
// 中间位置设置间距为 14 ,后面 runoob 字符数为6,前面补充 8 个空格
cout << "runoob" << setw(14) << "runoob" << endl;
return 0;
}
运行结果:
设置填充
- setw() 默认填充的内容为空格,可以 setfill() 配合使用设置其他字符填充。
cout << setfill('*') << setw(14) << "runoob" << endl;
// 输出结果:********runoob
标签:cout,填充,setprecision,C++,setw,设置,include
From: https://www.cnblogs.com/ZhuYuxi/p/17510153.html