java实现大数加、减、乘、除

输入:

import java.math.BigDecimal;

public class BigDecimalDemo {
	final int location=10; //如果没有指定商的保留位数,则默认为10
	/**
	 * 定义加法方法,参数为加数和被加数
	 * @param value1   第1个加数
	 * @param value2   第2个加数
	 * @return 两数之和
	 */
	public BigDecimal add(double value1,double value2){
		//实例化Decimal对象
		BigDecimal b1=new BigDecimal(Double.toString(value1));
		BigDecimal b2=new BigDecimal(Double.toString(value2));
		return b1.add(b2);
	}
	/**
	 * 定义减法方法,参数为被减数和减数
	 * @param value1   被减数
	 * @param value2   减数
	 * @return 两数之差
	 */
	public BigDecimal sub(double value1,double value2){
		//实例化Decimal对象
		BigDecimal b1=new BigDecimal(Double.toString(value1));
		BigDecimal b2=new BigDecimal(Double.toString(value2));
		return b1.subtract(b2);
	}
	/**
	 * 定义乘法方法,参数为乘数和被乘数
	 * @param value1   第1个乘数
	 * @param value2   第2个乘数
	 * @return 两数之积
	 */
	public BigDecimal mul(double value1,double value2){
		//实例化Decimal对象
		BigDecimal b1=new BigDecimal(Double.toString(value1));
		BigDecimal b2=new BigDecimal(Double.toString(value2));
		return b1.multiply(b2);
	}
	/**
	 * 定义除法方法,参数为被除数和除数
	 * @param value1   被除数
	 * @param value2   除数
	 * @param value2   保留位数
	 * @return 两数之商
	 */
	public BigDecimal div(double value1,double value2){
		return div(value1, value2, location);  //第2个参数为商的小数点后的位数,第3个参数为对商进行四舍五入操作
	}
	/**
	 * 定义除法方法,参数为被除数,除数和保留位数
	 * @param value1   被除数
	 * @param value2   除数
	 * @param value2   保留位数
	 * @return 两数之商
	 */
	public BigDecimal div(double value1,double value2,int b){
		if (b<0) System.out.println("保留位数必须大于等于0");
		//实例化Decimal对象
		BigDecimal b1=new BigDecimal(Double.toString(value1));
		BigDecimal b2=new BigDecimal(Double.toString(value2));
		return b1.divide(b2,b,BigDecimal.ROUND_HALF_UP);  //第2个参数为商的小数点后的位数,第3个参数为对商进行四舍五入操作
	}
	
	public static void main(String[] args) {
		// 测试
		BigDecimalDemo b=new BigDecimalDemo(); //默认构造函数
		System.out.println("两个数相加:"+b.add(-99999999999999999999999999d, 9999999999999999999999999999d));
		System.out.println("两个数相减:"+b.sub(-99999999999999999999999999d, 9999999999999999999999999999d));
		//大整数乘法
		System.out.println("两个数相乘:"+b.mul(-99999999999999999999999999d, 9999999999999999999999999999d));
		System.out.println("两个数相除,结果保留10位小数:"+b.div(9999999999999999999999999999d, 7));
		System.out.println("两个数相除,结果保留5位小数:"+b.div(-99999999999999999999999999d, 7, 5));
	}

}

输出:

java实现大数加、减、乘、除_第1张图片

你可能感兴趣的:(java)