JAVA请问一下4.6为啥一直不对

请问一下大家4.6那道题为什么一直不对,试了很久了,还是有问题

img

img

可以这样计算,首先从输入获取一个整数n,然后用循环计算从1到n之间的每一项,然后累加每一项即最终结果。
参考链接:
在键盘上输入数n,编程计算sum=1-1/2!+1/3!-1/4!+…(-1)n-1*1/n!_酷酷滴Q的博客-CSDN博客
代码如下:

import java.util.Scanner;

public class FactorialTest {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        
        int n;
        double sum=0;
        
        //从输入获取一个整数n
        System.out.println("请输入一个整数n:");
        Scanner sc = new Scanner(System.in);
        n = sc.nextInt();
        
        int a = -1;  //用于计算每一项前面的正负,即(-1)^(n-1)次方
        double factorial =1;
        for(int i=1;i<=n;i++) {
            
            a*=-1;  //计算符号位,即(-1)^(n-1)次方,用这种方法可以简易计算出和(-1)^(n-1)次方相同的结果
            factorial   *= i;  //计算每一项的阶层
            sum+= a* 1/factorial ;//最终的结果就是把每一项的结果(即符号位乘以每一项阶乘分之一)累加起来
            
        }
        
        //打印结果
        System.out.println("结果是:"+sum);
    }

}


img