关于java的数学运算

public class Test1 {

	public static void main(String[] args) {
		
		System.out.println(3/2);//1
		
		float float_a = 0.05f;
		float float_b = 0.01f;
		System.out.println(float_a+float_b);//0.060000002
		
		double double_a = 0.05d;
		double double_b = 0.01d;
		System.out.println(double_a+double_b);//0.060000000000000005		
		
		BigDecimal bigDecimal_a1 = new BigDecimal(float_a+"");
		BigDecimal bigDecimal_b1 = new BigDecimal(float_b+"");
		System.out.println(bigDecimal_a1.add(bigDecimal_b1));//0.06
		
		BigDecimal bigDecimal_a2 = new BigDecimal(double_a+"");
		BigDecimal bigDecimal_b2 = new BigDecimal(double_b+"");
		System.out.println(bigDecimal_a2.add(bigDecimal_b2));//0.06	
	}
}
import java.math.BigDecimal;


public class MathTool {

	/*
	 * 加法运算
	 */
	public static String jia(double d1,double d2){
		BigDecimal b1 = new BigDecimal(d1+"");
		BigDecimal b2 = new BigDecimal(d2+"");
		return b1.add(b2).toPlainString();
	}

	/*
	 * 减法运算
	 */
	public static String jian(double d1,double d2){
		BigDecimal b1 = new BigDecimal(d1+"");
		BigDecimal b2 = new BigDecimal(d2+"");
		return b1.subtract(b2).toPlainString();
	}
	/*
	 * 乘法运算
	 */
	public static String cheng(double d1,double d2){
		BigDecimal b1 = new BigDecimal(d1+"");
		BigDecimal b2 = new BigDecimal(d2+"");
		return b1.multiply(b2).toPlainString();
	}
	/*
	 * 除法运算
	 */
	public static String chu(double d1,double d2,int point){
		BigDecimal b1 = new BigDecimal(d1+"");
		BigDecimal b2 = new BigDecimal(d2+"");
		return b1.divide(b2,point,BigDecimal.ROUND_HALF_UP).toPlainString();
	}
	
	public static void main(String[] args) {
		double double_a = 0.05d;
		double double_b = 0.01d;
		System.out.println(MathTool.jia(double_a, double_b));//0.06
		System.out.println(MathTool.jian(double_a, double_b));//0.04
		System.out.println(MathTool.cheng(double_a, double_b));//0.0005
		System.out.println(MathTool.chu(double_a, double_b,0));//5
	}
}

  

      做加减乘数等数学运算时,应尽可能使用BigDecimal类,切忌直接使用int、float、double进行直接运算,否则很有可能会发生精度的丢失,进而导致计算结果的不准确。

猜你喜欢

转载自huangqiqing123.iteye.com/blog/1413533