计算表达式的值结果输出不准确

img

这是我的代码
因为还没学函数,就用循环来计算阶乘


#include
#include
int main(){
    double e=1.0,x,m,f=1.0;
    int i;
    scanf("%lf",&x);
    m=x;
    for(i=2;m>10e-8;i++){
        e+=m;
        f*=i;
        m=pow(x,i)/f;
    }
    printf("%.8lf",e);
    return 0;
}

这是输出

img


最后一位不对,请问这是什么原因啊?

你输入的是多少?

应该是少算了最后一项,参考
https://apull.blog.csdn.net/article/details/127473080

img