BigDecimal

BigDecimal用法

示例代码:

public class Demo3 {
    public static void main(String[] args) {
        //double和float采用近似值存储,会产生误差
//        double a = 1.0;
//        double b = 0.9;
//        System.out.println(a-b);  //  0.09999999999999998
//
//        //面试题
//        double result = (1.4-0.5)/0.9;
//        System.out.println(result);  //0.9999999999999999

        //BigDecimal  精确计算浮点数
        BigDecimal a = new BigDecimal("1.0");
        BigDecimal b = new BigDecimal("0.9");
        //减法
        BigDecimal c = a.subtract(b);
        System.out.println(c);  //  0.1
        //加法
        BigDecimal d = a.add(b);
        System.out.println(d);  //  1.9
        //乘法
        BigDecimal e = a.multiply(b);
        System.out.println(e);  //  0.90
        //除法
        BigDecimal f = new BigDecimal("1.4")
                .subtract(new BigDecimal("0.5"))
                .divide(new BigDecimal("0.9"));
        System.out.println(f);  //  1

        BigDecimal g = new BigDecimal("10").divide(new BigDecimal("3"),2,BigDecimal.ROUND_HALF_UP); //重载方法,保留两位小时   四舍五入
        System.out.println(g);  //3.33
    }
}
原文地址:https://www.cnblogs.com/qiudajiang/p/13253910.html