转自:http://blog.youkuaiyun.com/wuzh670/article/details/6183507
c++ 输出精度控制
1.setprecision(n);
默认设置输出的数字的总位数为n,包含整数和小数部分。
2.setiosflags(ios::fixed)
默认输出6位,必须与setprecision(n)配合使用,用来控制小数位数,不够补0
3.resetiosflags(ios::fixed);
取消精度的设置
double a= 12.3456789;
std::cout<<a<<std::endl; //输出为12.3457,因为C++默认输出6位
std::cout<<std::setprecision(5)<<a<<std::endl; //输出为12.234,总的输出位数为5
std::cout<<std::setiosflags(std::ios::fixed)<<std::setprecision(5)<<a<<std::endl; //输出为12.34568,小数位数是5位,不够补0;这个涉及到的是流的格式化。std::setiosflags(std::ios::fixed)主要是将流的格式设置为:fixed(将一个浮点数表示为一个定点整数和小数点和小数部分的格式)。然后setprecision(4)表示小数部分的精度为4位
std::cout<<std::resetiosflags(std::ios::fixed); //取消精度的设置