位置:java.math包中
作用:精确计算浮点数
创建方式:BigDecimal bd=new BigDecimal("1.0");
注意:使用的时候选择字符串
方法:
BigDecimal add(BigDecimal bd) 加法
BigDecimal subtract(BigDecimal bd) 减法
BigDecimal multiply(BigDecimal bd )乘法
BigDecimal divide(BigDecimal bd)除法
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);
}
}