位置:java.math包中

作用:精确计算浮点数

创建方式:BigDecimal bd=new BigDecimal("1.0");

注意:使用的时候选择字符串

方法:

BigDecimal add(BigDecimal bd) 加法

BigDecimal subtract(BigDecimal bd) 减法

BigDecimal multiply(BigDecimal bd )乘法

BigDecimal divide(BigDecimal bd)除法

image-20240527200121683

public class Demo01 {
public static void main(String[] args) {
double d1=1.0;
double d2=0.9;
System.out.println(d1-d2);

    //面试题;下面 result输出的结果为多少
    double result=(1.4-0.5)/0.9;
    System.out.println(result);
    System.out.println("==========正确示范===========");
   // 正确解决方案:
 BigDecimal bd1=new BigDecimal("1");
 BigDecimal bd2=new BigDecimal("0.9");
 //注意:类运算时需要调用方法;本次用subtract方法做减法
 BigDecimal r1=bd1.subtract(bd2);
    System.out.println(r1);

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

    //乘法 multiply
   BigDecimal r3= bd1.multiply(bd2);
    System.out.println(r3);
    //除法
    //面试题(1.4-0.5)/0.9=1;用BigDecimal方法实现
   BigDecimal r4=new BigDecimal("1.4").subtract(new BigDecimal("0.5")).divide(new BigDecimal("0.9"));
    System.out.println(r4);

    //10除以3题目; divide方法里面的int scale方法决定保留几位小数;BigDecimal里面的常量ROUND_HALF_UP来四舍五入。
    BigDecimal r5=new BigDecimal("10").divide( new BigDecimal("3"),2,BigDecimal.ROUND_HALF_UP);
    System.out.println(r5);

    BigDecimal r6=new BigDecimal("20").divide( new BigDecimal("3"),2,BigDecimal.ROUND_HALF_UP);
    System.out.println(r6);
}

}