关于C++,看到很多程序中有cout<<fixed<<d1<<"\n"<<d2<<"\n";但都没有明确的说明fixed的解释,如下列

列一://=====================================//f0403.cpp//浮点数的比较//======================... 列一:
//=====================================
// f0403.cpp
// 浮点数的比较
//=====================================
#include<iostream>
#include<cmath>
using namespace std;
//-------------------------------------
int main(){
double d1=123456789.9*9;
double d2=1111111109.1;
cout<<(d1==d2 ? "same\n" : "not same\n");
cout<<(abs(d1-d2)<1e-05 ? "same\n" : "not same\n");
cout.precision(9);
cout<<fixed<<d1<<"\n"<<d2<<"\n";
}//====================================

列二:
//=====================================
// f0218.cpp
// 求pi
//=====================================
#include<iostream>
#include<iomanip>
#include<cmath> // abs()
using namespace std;
//-------------------------------------
int main(){
double sum=0, item=1;
for(int n=1; abs(item)>1e-6; ++n){
item *= (-1.0)*(2*n-3)/(2*n-1);
sum += item;
}
cout<<"Pi = "<<setiosflags(ios::fixed)<<sum*4<<endl;
}//====================================

fixed意义表示设置,好像是与 for(int n=1; abs(item)>1e-6; ++n)中abs连用,帮忙解释一下!谢谢
展开
 我来答
御含灵9r
2011-06-14 · TA获得超过4157个赞
知道大有可为答主
回答量:3007
采纳率:0%
帮助的人:2692万
展开全部
不是的fixed是和 precision连用的 如果是fixed这固定指小数点后9位小数 不用fixed的 全部数字加上小数点共9位
更多追问追答
追问
这个答案不太满意,请看下例:
#include
#include
using namespace std;
//-------------------------------------
int main(){
double sum = 0, item = 1;
long denom = -1;
int sign = -1;
do{
denom += 2;
sign *= -1;
item = sign*1.0/denom;
sum += item;
}while(abs(item)>1e-6);
cout<<"Pi = "<<fixed<<sum*4<<endl;
}
追答
因为有缺省的 precision啊 好象是6
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式