double、float的近似存储,需要精确计算的问题需要使用BigDecimal
public class TestBigDecimal {
public static void main(String[] args) {
double x = 1.0;
double y = 0.9;
System.out.println(x-y);
double a=1.4;
double b = 0.5;
double c = 0.9;
System.out.println((a - b) / c);
}
}
BigDecimal bd1 = new BigDecimal("1.0");
BigDecimal bd2 = new BigDecimal("0.9");
//加法
BigDecimal bd3 = bd1.add(bd2);
System.out.println(bd3);
//减法
BigDecimal bd4 = bd1.subtract(bd2);
System.out.println(bd4);
//乘法
BigDecimal bd5 = bd1.multiply(bd2);
System.out.println(bd5);
//除法
BigDecimal bd6 = bd1.divide(bd2,3,BigDecimal.ROUND_HALF_UP);//四舍五入
System.out.println(bd6);
BigDecimal bd7 = new BigDecimal("1.4").subtract(new BigDecimal(0.5)).divide(new BigDecimal("0.9"));
System.out.println(bd7);