Day14_BigDecimal的使用

BigDecimal的使用

  • 位置: java.math包中。
  • 作用:精确计算浮点数。
  • 创建方式:BigDecimal bd=new BigDecimal (“1.0”);
  • 方法:
    • BigDecimal add(BigDecimal bd) 加
    • BigDecimal subtract(BigDecimal bd) 减
    • BigDecimal multiply(BigDecimal bd) 乘
    • BigDecimal multiply(BigDecimal bd) 除
package com.oop.Demo11;

import java.math.BigDecimal;

public class demo07 {
    public static void main(String[] args) {
    	//double损失精度
        double d1=1.0;
        double d2=0.9;
        System.out.println (d1-d2);//0.09999999999999998
        //面试题
        double result=(1.4-0.5)/0.9;
        System.out.println (result);//0.9999999999999999
    }
}
package com.oop.Demo11;

import java.math.BigDecimal;

public class demo07 {
    public static void main(String[] args) {     
        //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);
        //除不尽时ROUND_HALF_UP四舍五入
        BigDecimal r5=new BigDecimal ("10").divide (new BigDecimal (3),2,BigDecimal.ROUND_HALF_UP);
        System.out.println (r5);
    }
}
  • 除法:divide (BigDecimal bd,int scal, RoundingMode mode)
  • 参数scal :指定精确到小数点后几位。
  • 参数mode:
    • 指定小数部分的取舍模式,通常采用四舍五入的模式,
    • 取值为BigDecimal.ROUND_HALF_UP。
原文地址:https://www.cnblogs.com/lemonlover/p/14062384.html