一、setprecision() setw() setfill() fixed用法详解
1.setprecision() fixed
setprecision()是精度e控制输出流显示浮点数的有效数字个数 [1] ,如果和fixed合用的话,可以控制小数点后面有几位。
注意:在你写了setprecision(n)之后 后面所有的输出的浮点数的有效数字位数都是n 如果要想恢复默认 得加一个cout<<setprecision(6);
如果setprecision(n)么n就表示有效数字位数
当输出的浮点数的有效数字位数大于n但是整数位数不小于n时 那么就四舍五入保留n位有效数字
cout<<setprecision(3)<<1.123<<" "<<1.145<<endl;
cout<<1.178<<endl;
cout<<setprecision(6)
cout<<1.234;
运行结果:
当浮点数的整数位数都大于n的是候 按照科学计数法输出 尾数有效数字位数为n
N=M*R^E 这里M就是尾数 R是阶码的基数 E是阶码
cout<<setprecision(3)<<123.12<<" "<<1234.11<<" "<<12356.1;
运行结果:
这个03不用在意 和3 ,003是一样的
当输出的浮点数的有效数字位数等于n时
直接就是输出本身就行了
当输出的浮点数的有效数字位数小于n时但是n<7
输出本身
当n>7(浮点数的精度)的时候多的位置上会补上无意义的数
正确的结果:200.66666666循环下去但是这里第七位之后就是无意义的数了
fixed 固定小数点
cout<<fixed<<setprecision(n);这里的n就是小数位数
cout<<fixed<<setprecision(3)<<10.0/3.0;
2.setw() setfill()
setw(n)用于控制输出之间的间隔
setfill()用于填充空出来的间隔
注意:setw(n)只对后面的一个数作用
表示然后面这个数/字符串/字符的宽度变成n
而且默认是右对齐 如上图1在右边
小数的小数点也占一个宽度
改成左对齐
cout<<left<<setw(3)<<1<<2;
setfill填充
注意:setfill()中的值只能是一个字符
cout<<setfill('*')<<setw(4)<<1;
这里的宽度单位是字节 所以中文占两个字节
cout << setfill('*') << setw(4) << "你";