C++风格的小数位输出控制利用cout函数输出指定为是的小数;
C++风格输出txt文件是指定输出位数;
代码如下:
#include <iomanip>
double dd = 0.123456789;
float ff = 1.2f;
cout << "Original data:" << endl;
cout << dd << endl;
cout << ff << endl;
//> 1st approach
cout.setf(ios::fixed);
cout.precision(3);
cout << "1st approach" << endl;
cout << dd << endl;
cout << ff << endl;
//> 2nd approach
cout << "2nd approach" << endl;
cout << std::fixed << std::setprecision(4) << dd << endl;
cout << std::fixed << std::setprecision(2) << ff << endl;
cout << dd << endl;
system("pause");
需要添加头文件#include <iomanip>
1st approach中的方案,可以控制之后所有的输出格式,如上例中,采用1st approach的方法后,如无其它更改行为,则以后的所有输出都将只保留3位小数。
2nd approach中的方案,对每一次的cout数据都会进行控制。但是如果,之后不再指定控制位数,则按照最后一次设定的位数精度进行输出。
输出的 结果如下图所示:
可以看到在2nd approach中第三行输出是上方程序中对应的cout<<dd<<endl;
由于此命令没有制定新的小数位控制精度,则按照上一次指令中 std::fixed << std::setprecision(2)来执行,因此保留2位。
另外注意到,在输出中控制小数位精度时,是按照四舍五入的方式来执行的。