c++的这个输出该怎么理解呢
#include<iostream>#include<stdlib.h>
using namespace std;
int main()
{
cout.setf(ios_base::fixed,ios_base::floatfield);
float tub = 10.0 / 3.0;
double mint = 10.0 / 3.0;
const float million = 1.0e6;
cout << "tub = " << tub << endl;
cout << "amillion tubs = " << million*tub << endl;
cout << "and then million tubs =";
cout << 10 * million * tub << endl;
cout <<"mint = " << mint <<" and a million mints = ";
cout << million * mint << endl;
system("pause");
return 0;
}
输出为
tub = 3.333333
amillion tubs = 3333333.250000
and then million tubs =33333332.000000
mint = 3.333333 and a million mints = 3333333.333333
请按任意键继续. . .
1.这个tub开始是3.333333,amillion tubs是tubs乘10的6次方的结果,为什么乘10的6次方后小数点后还有个25,这个25哪里来的?
2.amillion tubs再乘10不是应该为33333332.500000吗?问什么变为33333332.000000了,那个5怎么消失了?
问题比较多,麻烦鱼油们看一下吧,感谢大家!!!!!!! 这个应该是精确度的问题吧 Hello. 发表于 2020-7-7 18:41
这个应该是精确度的问题吧
我也知道是精度问题{:10_257:} 这个是编译器的问题吧,你把tub保留8位小数,得出的结果是3.33333325,保留9位是3.333333254
保留小数越多,结果越不准
第二问就不知道了 小甲鱼的铁粉 发表于 2020-7-7 18:48
我也知道是精度问题
知道了还问啥{:10_257:} Hello. 发表于 2020-7-7 18:51
知道了还问啥
{:10_250:}这个好像是概念问题,确实是不用问{:10_297:} 小甲鱼的铁粉 发表于 2020-7-7 18:53
这个好像是概念问题,确实是不用问
{:10_256:}等学到后面会懂哒 Hello. 发表于 2020-7-7 18:54
等学到后面会懂哒
嗯{:10_275:} 哈~可否最佳{:10_297:}
页:
[1]