最初的想法:代碼如下
/**
* 計算100的階乘
* @author Administrator
*
*/
public class Test {
public static void main(String args[]){
int result= 1;
for(int i=1;i<101;i++){
result = result*i;
}
System.out.println("result="+result);
}
}
但發現執行結果為0,因為資料太大了int是儲存不下的!
修改
import java.math.BigDecimal;
/**
* 計算100的階乘
* @author Administrator
*
*/
public class Test {
public static void main(String args[]){
BigDecimal result= new BigDecimal(1);
for(int i=1;i<101;i++){
BigDecimal i_value= new BigDecimal(i);
result = result.multiply(i_value);
}
System.out.println("result="+result);
}
}
運作結果:
result=93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
BigDecimal的四則運算不能用運算符進行有自己的方法如下:
public static void bigdecimalmeth(){
BigDecimal bigvalue1 = new BigDecimal(100);
BigDecimal bigvalue2 = new BigDecimal(20);
BigDecimal result= new BigDecimal(0);
//加
result = bigvalue1.add(bigvalue2);
System.out.println("100+20="+result);
//減
result = bigvalue1.subtract(bigvalue2);
System.out.println("100-20="+result);
//乘
result = bigvalue1.multiply(bigvalue2);
System.out.println("100*20="+result);
//除
result = bigvalue1.divide(bigvalue2);
System.out.println("100/20="+result);
}