ขอสอบถามเรื่องBigDecimal ในจาวาหน่อยครับ

พอดีได้รับโจทย์มาให้แสดงค่าในแต่ละพจน์ออกมา  (x^2/2!)+(x^3/3!)+...ไปเรื่อยๆแบบนี้ครับโดยเขากำหนดมาว่าให้หาตั้งแต่ 10,50,100พจน์ตามลำกับโดยที่x=0.5,5,10ตามลำดับครับ เช่น(x^2/2!)=เท่าไร (x^3/3!)=เท่าไร ปริ้นคำตอบออกมาเรื่อยๆตามพจน์ที่เขาให้หา ผมใช้doubleละแน่นอนมันไม่ได้แน่เพราะตัวเลขมันเกินแน่นอน ไปค้นหาในเน็ตมาเห็นว่าต้องใช้BigDecimal ผมลองทำดูแล้วแต่เจอปัญหาครับนี้คือโค๊ดที่ผมทำ

package homework;
import java.util.Scanner;
import java.math.BigInteger;
import java.math.BigDecimal;
import java.math.*;
public class test {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        
double  number=2,powans=2;

BigDecimal e,decimal;
BigDecimal factcount=new BigDecimal("1");
BigDecimal fact=new BigDecimal("1");
Scanner num = new Scanner(System.in);
Scanner terminput = new Scanner(System.in);
double x= num.nextDouble();
int term= terminput.nextInt();
        
        for (int i=2;i<term+1;i++){
            
            for(int j=1;j<=number;j++){
                fact=fact.multiply(factcount);
                factcount=factcount.add(BigDecimal.valueOf(1));
            
            }
        powans=powans*x;
        
    
        e=(BigDecimal.valueOf(powans));
        
        e=e.divide(fact);
        System.out.println(i+"::"+e);
        number++;
        fact=fact.divide(fact);
        }
        
    }
    
     }
xคือตัวเลขที่เขากำหนด ส่วนtermก็คือจำนวนพจน์นะครับซึ้งผมลองทำมาหลายวิธีละจนถึงวิธีนี้มันรันได้นะแต่นี้คือerrorครับมันขึ้นงี้

0.5
10
2::0.5
Exception in thread "main" java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.
    at java.math.BigDecimal.divide(Unknown Source)
    at homework.test.main(test.java:33)
มันรันออกมาได้แค่บรรทัดเดียวละก็errorครับ อยากสอบถามหน่อยว่าต้องแก้ยังไงมันผิดเพราะอะไรวิธีที่ถูกควรต้องทำเช่นไร รบกวนด้วยนะครับ
แก้ไขข้อความเมื่อ

แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่