位置: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);
}
}