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