e ^ -x MacLaurin系列扩展

时间:2015-01-19 05:24:20

标签: c series

我正在尝试为e -x = 1 - x +(x 2 / 2!)计算MacLaurin系列 - (x 3 / 3!)+ ...

我的价值观似乎达到某一点,然后完全偏离。四舍五入是否有问题,或者我是否在这样的问题中使用了错误的变量类型?

int i;
double sum=0;
double x = 8.3;

for(i=0; i<26; i++)
{
    sum = sum+ (((pow(-1,i)) * (pow(x,i)))/factorial(i));
    printf("Sum = %.12f\n\n\n",sum);
}

return 0;

我不明白为什么,但直到第12个学期,这些数值是正确的,但在此之后,它开始完全不同。

1 个答案:

答案 0 :(得分:1)

据推测,您未显示的factorial函数正在执行整数运算。 12点以后!你要溢出一个32位整数。切换到使用double功能中的factorial