#include<iostream>
#include<iomanip>
using namespace std;
// 精度控制,详细介绍:简单来讲,未设置fixed或者 scientfic 时有效数字位数 默认符合直觉,设置后有效数字按小数点后算起
//http://www.cplusplus.com/reference/ios/ios_base/precision/
int main()
{
cout<<12345.0<<endl;//输出"12345"
cout<<setiosflags(ios::fixed)<<setprecision(3)<<1.2345<<endl;//输出"1.234"(遵循四舍六入五成双的原则,而不是四舍五入的原则)
cout<<resetiosflags(ios::fixed);//需要用resetiosflags()函数清除前面的输出格式
cout<<setiosflags(ios::scientific)<<123456.0<<endl;//输出"1.235e+005" //精度还是3位
cout<<setprecision(4)<<123456.0<<endl;//输出"1.2346e+005"
return 0;
}
//如果不用resetiosflag 结果
//12345
//1.234
//1.23e+005
//1.235e+005
//
//Process returned 0 (0x0) execution time : 0.544 s
//Press any key to continue.
//用resetiosflag 结果
//12345
//1.234
//1.235e+005
//1.2346e+005
//
//Process returned 0 (0x0)
//Press any key to continue.
C++ 中输出精度问题
最新推荐文章于 2024-02-02 19:21:06 发布