Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。
双精度浮点型变量double可以处理16位有效数。在实际应用中,需要对更大或者更小的数进行运算和处理。float和double只能用来做科学计算或者是工程计算,在商业计算中要用java.math.BigDecimal。BigDecimal所创建的是对象,我们不能使用传统的+、-、*、/等算术运算符直接对其对象进行数学运算,而必须调用其相对应的方法。方法中的参数也必须是BigDecimal的对象。构造器是类的特殊方法,专门用来创建对象,特别是带有参数的对象。
废话不再多说,直接上代码!!!
//java.math.BigDecimal用法
public class Example36 {
public static void main(String[] args) {
// TODO 自动生成的方法存根
BigDecimal sum = new BigDecimal(0.0);//sum表示和
BigDecimal fac = new BigDecimal(1.0);//fac表示阶乘
int i = 1; //i是循环变量,控制递增次数
while(i<=20) {
sum = sum.add(fac); //累加各个阶乘和
++i; //自增
fac = fac.multiply(new BigDecimal(1.0/i));//计算阶乘项
}
System.out.println("1+1/2!+1/3!+1/4!+1/5!+...+1/20!的计算结果为:\n"+sum);
//输出计算结果
}
}
运行结果: