#include<iostream>
using namespace std;
int main()
{
int n,i;
double m,sum=0;
cin>>n;
while(n)
{
for(i=0;i<n;i++)
{
cin>>m;
sum+=m;
}
cout.precision(30);
cout<<sum<<endl;
cin>>n;
sum=0;
}
}
这个程序当输入精度非常高的数据时 会出错
如
2
4.7878787878787878787878787878
3
他的结果不是四舍五入得来的
而把cout.precision(30);中的30改为15则正确
哪位大侠帮忙看看这是为啥么
cout.precision() 用法问题
答案:2 悬赏:0
解决时间 2021-04-09 04:49
- 提问者网友:娇妻失忆
- 2021-04-08 22:48
最佳答案
- 二级知识专家网友:苦柚恕我颓废
- 2021-04-08 23:02
setprecsion(n)是格式控制符,precision(n)是流对象的成员函数,用法分别如下:
如要输出圆周率的pi=3.141592四位小数,
cout<<setprecision(4)<<pi;
cout.precision(4);cout<<pi;
如要输出圆周率的pi=3.141592四位小数,
cout<<setprecision(4)<<pi;
cout.precision(4);cout<<pi;
全部回答
- 1楼网友:魅世女王
- 2021-04-08 23:25
这个cout.precision()函数的返回值就是设定前的有效位数,你的前面就是4,默认为6,这个位数大多数时候不会用得到, 因此一般而言最好是单独使用一个语句
你后面接着再加上一句:
std::cout << std::cout.precision(5)<< std::endl;
看看输出结果是什么
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
• 手机登qq时,显示手机磁盘不足,清理后重新登 |
• 刺客的套装怎么选啊? |