java.math包有两个很有用的类:BigInteger和BigDecimal,分别是任意精度的
整数运算和任意精度的浮点数运算。
1.使用静态的valueOf方法可以将普通的数值转换为大数值:

BigInteger a=BigInteger.valueOf(100);

+,-,*, /   -> add,subtract,multiply ,divide方法,mod求余数

BigInteger a=BigInteger.valueOf(3);
	BigInteger b=BigInteger.valueOf(8);
	BigInteger c=a.add(b);//c=a+b=3+8=11
	BigInteger d=c.multiply(b.add(BigInteger.valueOf(2)));//d=c*(b+2)=11*(8+2)=110
lotteryOdds=lotteryOdds *(n-i+1)/i;
大数值表示为
lotteryOdds=lotteryOdds.mutiply(BigInteger.valueOf(n-i+1)).divide(BigInteger.valueOf(i));
package com.cxy.fkJava.C7.BigDecimal;

import java.math.BigDecimal;
import java.math.RoundingMode;

/**
 * 算术工具类
 * @author 69497
 *
 */
public class Arith {
	//默认除法精度
	private static final int DEFAULT_DIV_SCALE  = 10;
	//私有化构造器,让类无法实例化
	private Arith (){
	}
	
	//加法
	public static double add(double v1,double v2){
		BigDecimal a1 = BigDecimal.valueOf(v1);
		BigDecimal a2 = BigDecimal.valueOf(v1);
		return a1.add(a2).doubleValue();	
	}
	
	//减法
		public static double subtract(double v1,double v2){
			BigDecimal a1 = BigDecimal.valueOf(v1);
			BigDecimal a2 = BigDecimal.valueOf(v1);
			return a1.subtract(a2).doubleValue();	
		}
		
		//乘法
		public static double mul(double v1,double v2){
			BigDecimal a1 = BigDecimal.valueOf(v1);
			BigDecimal a2 = BigDecimal.valueOf(v1);
			return a1.multiply(a2).doubleValue();	
		}
		
		//除法(小数点后10位四舍五入)
		public static double div(double v1,double v2){
			BigDecimal a1 = BigDecimal.valueOf(v1);
			BigDecimal a2 = BigDecimal.valueOf(v1);
			return a1.divide(a2,DEFAULT_DIV_SCALE,RoundingMode.HALF_UP).doubleValue();	
		}

}