BigDecimal类

如果需要精确的计算结果,则必须使用BigDecimal类,而且使用BigDecimal类也可以进行大数的操作。

//=================================================
// File Name       :	BigDecimal_demo
//------------------------------------------------------------------------------
// Author          :	Common

import java.math.BigDecimal;

//类名:MyMath
//属性:
//方法:
class MyMath{
	public static double add(double d1, double d2){		//进行加法运算
		BigDecimal b1 = new BigDecimal(d1);
		BigDecimal b2 = new BigDecimal(d2);
		return b1.add(b2).doubleValue();
	}
	
	public static double sub(double d1, double d2){		//进行减法运算
		BigDecimal b1 = new BigDecimal(d1);
		BigDecimal b2 = new BigDecimal(d2);
		return b1.subtract(b2).doubleValue();
	}
	
	public static double mul(double d1, double d2){		//进行乘法运算
		BigDecimal b1 = new BigDecimal(d1);
		BigDecimal b2 = new BigDecimal(d2);
		return b1.multiply(b2).doubleValue();
	}
	
	public static double div(double d1, double d2,int len){		//进行除法运算
		BigDecimal b1 = new BigDecimal(d1);
		BigDecimal b2 = new BigDecimal(d2);
		return b1.divide(b2,len,BigDecimal.ROUND_HALF_UP).doubleValue();	//表示四舍五入
	}
	
	public static double round(double d,int len){		//进行四舍五入
		BigDecimal b1 = new BigDecimal(d);
		BigDecimal b2 = new BigDecimal(1);						//任何一个数字除以1都是原数字
		return b1.divide(b2,len,BigDecimal.ROUND_HALF_UP).doubleValue();	//表示四舍五入
	}
}

//主类
//Function        : 	BigDecimal_demo
public class BigDecimal_demo {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		System.out.println("加法运算:"+MyMath.round(MyMath.add(10.345, 3.333), 1));
		System.out.println("加法运算:"+MyMath.round(MyMath.sub(10.345, 3.333), 1));
		System.out.println("加法运算:"+MyMath.div(10.345, 3.333, 1));
		System.out.println("加法运算:"+MyMath.round(MyMath.mul(10.345, 3.333), 1));
	}

}
原文地址:https://www.cnblogs.com/tonglin0325/p/5269915.html