首页 > 编程 > Java > 正文

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

2019-11-08 02:34:21
字体:
来源:转载
供稿:网友

输入:

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数字格式化

下一篇:java随机数

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表