level 4
龙0凰
楼主
无法理解
using namespace std;
float a,b;
cout.setf(ios_base::fixed,ios_base::floatfield);
cin>>a>>b;
cout<<a<<" "<<b;
cout<<"a+b="<<a+b<<endl;
cout<<"a-b="<<a-b<<endl;
cout<<"a*b="<<a*b<<endl;
cout<<"a/b="<<a/b<<endl;
输出是
50.25
11.17
50.250000
11.170000
a+b=61.419998
a-b=39.080002
a*b=561.292480
a/b=4.498657
……cpp上的说法是float只能表示六个有效数字
也就是说在float看来61.419998会被看成61.42
……无法理解,现在不是前者被看成后者,是后者被看成前者啊
还有前面那串不明觉厉的cout.setf到底是什么神奇的东西啊……
cprimerplus通篇都是这种鬼东西,基本上就是第一天讲十位以内加法第二天讲积分方程的节奏
2013年06月22日 05点06分
1
using namespace std;
float a,b;
cout.setf(ios_base::fixed,ios_base::floatfield);
cin>>a>>b;
cout<<a<<" "<<b;
cout<<"a+b="<<a+b<<endl;
cout<<"a-b="<<a-b<<endl;
cout<<"a*b="<<a*b<<endl;
cout<<"a/b="<<a/b<<endl;
输出是
50.25
11.17
50.250000
11.170000
a+b=61.419998
a-b=39.080002
a*b=561.292480
a/b=4.498657
……cpp上的说法是float只能表示六个有效数字
也就是说在float看来61.419998会被看成61.42
……无法理解,现在不是前者被看成后者,是后者被看成前者啊
还有前面那串不明觉厉的cout.setf到底是什么神奇的东西啊……
cprimerplus通篇都是这种鬼东西,基本上就是第一天讲十位以内加法第二天讲积分方程的节奏

