C++ 中输出精度问题

#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.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值