本示例使用for循环计算1+1/2!+1/3!+...+/20!,并通过BigDecimal()类来提高精度
代码示例:
public class Example9 {
public static void main(String[] args) {
add1();
add2();
}
/**
*
* @Title add2
* @Description 使用BigDecimal计算
* @throws
*/
public static void add2() {
BigDecimal sum = new BigDecimal(0.0);
BigDecimal num = new BigDecimal(1.0);
for (int i = 1; i <= 20; i++) {
num = num.multiply(new BigDecimal(1.0 / i));
sum = sum.add(num);
}
System.out.println("使用BigDecimal计算结果为");
System.out.println("1+1/2!+1/3!+...+/20! = " + sum);
}
/**
*
* @Title add1
* @Description 不使用BigDecimal计算
* @throws
*/
public static void add1() {
double sum = 0;
for (int i = 1; i <= 20; i++) {
double num = 1;
for (int j = 1; j <= i; j++) {
num *= j;
}
sum += 1 / num;
}
System.out.println("不使用BigDecimal计算结果为");
System.out.println("1+1/2!+1/3!+...+/20! = " + sum);
}
}
输出结果为:

|