Double的精度问题

一段代码记住一个Java精度计算实数类:

/** *@author 修炼到救赎 *@date 2016-03-19 0:00 *BigDecimal类的加减乘除方法申明: *public BigDecimal add(BigDecimal augend); *public BigDecimal subtract(BigDecimal subtrahend); *public Bigdecimal multiply(BigDecimal multiplicand); *public Bigdecimal divide(Bigdecimal divisor); */

public class AccuratelyFloat{
    public static void main (String[]args){
        double money=3;
        double price=1.1;
        System.out.println("不精确的计算");
        System.out.println(money-price);
        //精确浮点的解决办法
        BigDecimal money0 = new BigDecimal("3");
        BigDecimal price0 = new  BigDecimal("1.1");
        BigDecimal result = money0.subtract(price0);
        System.out.println("精确计算");
        System.out.println(result); 
    }
}

你可能感兴趣的:(java)