您的位置:首页 > 其它

对BigDecimal中multiply的阶乘方法的理解

2016-05-16 08:19 323 查看
package controlFlow;
 
import java.math.BigDecimal;
 
public class Factorial {
public static void main(String[] args) {
BigDecimal sum = new BigDecimal(0.0);
BigDecimal factorial = new BigDecimal(1.0);
int i = 1;
while (i <= 10)
{
sum = sum.add(factorial);
++i;
factorial = factorial.multiply(new BigDecimal(1.0 / i));
}
System.out.println("1+1/2!+1/3!...1/10的计算结果等于: \n" + sum);
}
}


下图为API截图:

其中:

参数:multiplicand 乘以此 BigDecimal 的值。 
    返回:this * multiplicand

    对scale的理解:
      11/100=0.11  其中,integer=11, scale=2
      12/100=0.120 其中,integer=120, scale=3

    对这句代码的理解:1+1/2!+1/3!·····1/10! 
{
    在这个程序的while循环体里面
    fac先等于1 
    循环之后fac = 1×1/2 = 1/2!
    再循环之后 fac = 上面的 fac(1×1/2)×1/3 = 1/3!
    以此类推就可以得出阶乘1+1/2!+1/3!·····1/10!的结果了。

}
  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  阶乘