使用setprecision(n)可控制输出流显示浮点数的数字个数。C++默认的流输出数值有效位是6。
如果setprecision(n)与setiosflags(ios::fixed)合用,可以控制小数点右边的数字个数。setiosflags(ios::fixed)是用定点方式表示实数。 如果与setiosnags(ios::scientific)合用, 可以控制指数表示法的小数位数。setiosflags(ios::scientific)是用指数方式表示实数。
#include <iostream>
#include <iomanip> //要用到格式控制符
#include<ios>
using namespace std;
void main()
{
double amount = 22.0/7;
cout<<amount<<endl;
cout<<setprecision(0)<<amount<<endl;
cout<<setprecision(1)<<amount<<endl;
cout<<setprecision(2)<<amount<<endl;
cout<<setprecision(3)<<amount<<endl;
cout<<setprecision(4)<<amount<<endl;
cout<<setiosflags(ios::fixed);
cout<<setprecision(8)<<amount<<endl;
cout<<setiosflags(ios::scientific)<<amount<<endl;
cout<<setprecision(6); //重新还原为默认样式
}
setprecision(0) 相当于没设置