用BigDecimal进行数值计算

package class01.object01;

import java.math.BigDecimal;

/**
 * 
 * @create 2021-02-24 15:19
 */
public class Demo06 {
    
    
    public static void main(String[] args) {
    
    
        double d1=1.0;
        double d2=0.9;
        System.out.println(d1-d2);//0.09999999999999998,double是近似值存储

        //BigDecimal,大的浮点数精确计算
        BigDecimal bd1 = new BigDecimal("1.0");
        BigDecimal bd2 = new BigDecimal("0.9");
        //减法
        BigDecimal r1=bd1.subtract(bd2);
        System.out.println(r1);

        //加法
        BigDecimal r2=bd1.add(bd2);
        System.out.println(r2);

        //乘法
        BigDecimal r3=bd1.multiply(bd2);
        System.out.println(r3);

        //除法
        BigDecimal r4=new BigDecimal("1.4").subtract(new BigDecimal("0.5")).divide(new BigDecimal("0.9"));
        System.out.println(r4);

        BigDecimal r5=new BigDecimal("10").divide(new BigDecimal("3"),2,BigDecimal.ROUND_HALF_UP);
        System.out.println(r5);

    }
}

注意点:遇到除不尽的情况,使用devede(,int scal,Rounding Mode mode )
参数scal:指定精确到小数点后几位
参数mode:指定取舍模式:ROUND_HALF_UP(四舍五入)

猜你喜欢

转载自blog.csdn.net/qq_43021902/article/details/114024622