如果需要精确的计算结果,则必须使用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)); } }