setiosflags的参数是该流的格式标志值,这个值由如下位掩码(ios枚举器)指定,并可用位或OR(|)运算符进行组合:
ios::skipws 在输人中跳过空白。
ios::left 左对齐值,用填充字符填充右边。
ios::right 右对齐值;用填充字符填充左边(缺省对齐方式)。
ios::internal 在指定任何引导标记或基之后增加填充字符。
ios::dec 以基10(十进制)格式化数值(缺省进制)。
ios::oct 以基8(八进制)格式化数值。
ios::hex 以基16(十六进制)格式化数值。
ios::showbase 以C++编译器能读的格式显示数值常量。
ios::showpoint 对浮点数值显示小数点和尾部的0。
ios::uppercase 对于十六进制数值显示大写字母A到F,对于科学格式显示大写字母E。
ios::showpos 对于正数显示正号(+)。
ios::scientific 以科学格式显示浮点数值。
ios::fixed 以定点格式显示浮点数值。
ios::unitbuf 导致在每次插入之后ostream::osfx刷新该流。缺省地,cerr是缓冲的单元。
ios::stdio 导致在每次插入之后ostream::osfx刷新该流的stdout和stderr。
setiosflags( ios::fixed ),头文件为:include<iomanip>.
在遇到要计算浮点数且希望能控制其输出、精度、小数点后的位数等时,用setiosflags( ios::fixed )来控制。
1. setprecision( )
使用setprecision(n)可控制输出流显示浮点数的数字个数。C++默认的流输出数值有效位是6。setprecision(n)就是输出n个数,会有四舍五入。
2. setiosflags(ios::fixed)
setprecision(n)与setiosflags(ios::fixed)合用,可以控制小数点右边的数字个数。
例如:
cout << "第" << setiosflags(ios::right)<< setw(3) << i + 1 << "个人的红包是:" << setiosflags(ios::right) << setw(6) << setiosflags(ios::fixed) << setprecision(2) << round(b[i] * 100) / 100.0 ;
https://blog.csdn.net/panhe1992/article/details/6918643