关于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连用,帮忙解释一下!谢谢 展开
//=====================================
// 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连用,帮忙解释一下!谢谢 展开
1个回答
展开全部
不是的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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询