Java常用类:BigDecimal

BigDecimal

浮点数的计算是使用近似值,尽量不用浮点数计算

double d1 = 1.0;
double d2 = 0.9;
System.out.println(d1-d2);//0.09999999999999998

BigDecimal用于精确计算浮点数,位于java.math包中

方法

  • 创建:new对象,字符串形式输入数字
BigDecimal bd1 = new BigDecimal("1.0");
BigDecimal bd2 = new BigDecimal("0.9");
  • 加法:add()
BigDecimal r2 = bd1.add(bd2);
  • 减法:subtract()
BigDecimal r1 = bd1.subtract(bd2);
  • 乘法:mutiply()
BigDecimal r3 = bd1.multiply(bd2);
  • 除法:divide()
BigDecimal r4 = new BigDecimal("1.4")
        .subtract(new BigDecimal("0.5"))
        .divide(new BigDecimal("0.9"));

在除不尽的时候需要对除法进行限制 divide.(BigDecimal bd,int scal,RoundingMode mode)

scal:精确到小数点后位数

RoundingMode mode:取舍模式,常用BigDecimal.ROUND_HALF_UP:四舍五入

BigDecimal r5 = new BigDecimal("100").divide(new BigDecimal("3"),2,BigDecimal.ROUND_HALF_UP);
posted @ 2022-03-27 20:27  chachan53  阅读(33)  评论(0编辑  收藏  举报