变量在分别设为int型和double型的情况下,得到结果不同
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int a,b;
double c, d;
a = 1;
b = 1;
d = 0;
c = 1;
while ( (fabs(c))>1e-7 )
{
d += c;
a = -a;
b = b + 2;
c = a / b;
}
d = 4 * d;
cout << setiosflags(ios::fixed) << setprecision(6) << d;
return 0;
}
上述把变量b设为int型得到结果为4.000000
把b设为double型时得到的结果就是3.141592
b在此代码中不就是一直加2加2加2吗,为什么要设成double型而不是int型呢
还请各位大神指教 不是加法的问题,是除法的问题。c=a/b,若a和b都是int,除法就是两个整型相除,若a小于b,结果就是0。只要这两个数中有一个是浮点数,那就会都转为浮点数再进行除法运算。
页:
[1]