java常用类-BigDecimal

5.BigDecimal类
位置:java.math包
作用:精确计算浮点数
创建方式:BigDecimal bd=mew BigDecimal("1.0"); //一定要用字符串!

BigDecimal add(BigDecimal bd) 加
BigDecimal subtract(BigDecimal bd) 减
BigDecimal multiply(BigDecimal bd) 乘
BigDecimal divide(BigDecimal bd) 除
BigDecimal divide(BigDecimal bd,int scal,RoundingMode mode);

【注意】一定要用字符串创建BigDecimal对象!
除不尽时需要明确保留小数点位数和取数方式,否则运行错误!

public class BigDecimalDemo {
    public static void main(String[] args) {
        double db1=1.0;
        double db2=0.9;
        System.out.println(db1-db2);//0.09999999998
        //面试题
        double result=(1.4-0.5)/0.9;
        System.out.println(result);//0.9999999999
        //BigDecimal,浮点数精确计算
        BigDecimal bd1=new BigDecimal("1.0");//一定要用字符串
        BigDecimal bd2=new BigDecimal("0.9");//一定要用字符串
        //减法
        BigDecimal subtract = bd1.subtract(bd2);
        System.out.println(subtract);
        //加法
        BigDecimal add = bd1.add(bd2);
        System.out.println(add);
        //乘法
        BigDecimal multiply = bd1.multiply(bd2);
        System.out.println(multiply);
        //除法
        BigDecimal divide = new BigDecimal("1.4")
                .subtract(new BigDecimal("0.5"))
                .divide(new BigDecimal("0.9"));
        System.out.println(divide);
        //运行错误,除不尽时需要明确保留小数点位数和取数方式
        //BigDecimal round = new BigDecimal("10").divide(new BigDecimal("3"));
        BigDecimal round = new BigDecimal("10").divide(new BigDecimal("3"),2, RoundingMode.HALF_UP);
        System.out.println(round);
    }
}
posted @ 2022-02-18 10:36  老李学Java  阅读(50)  评论(0)    收藏  举报