e^-x 麦克劳林级数展开

e^-x MacLaurin Series Expansion

我正在尝试为 e-x = 1 - x + (x2 / 2!) 计算麦克劳林级数! (x3 / 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 项,值都是正确的,但在那之后,它开始完全不同。

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