浅谈BigDecimal

一、用处:主要用于精度要求高的场景中,比如:金融,支付、、、、、、(通俗地说,就是涉及money的时候用的较多)

 

二、操作:加减乘除不再是基本类型的 + - * /

     这里也容易理解,因为BigDecimal不是基本数据类型,需要调用相应的方法进行数据操作。

    

三、牛刀小试

①:创建 BigDecimal 对象

  BigDecimal BigDecimal(String s); //超常用(强烈推荐)

  static BigDecimal valueOf(double d); //一般

  BigDecimal BigDecimal(double d); //杜绝使用

@Test
public void test01() {
double d = 0.1122;

System.out.println(new BigDecimal(d + ""));

System.out.println(BigDecimal.valueOf(d));

System.out.println(new BigDecimal(d));

}
结果:

 


 这下明白了吧!

 

②:精度

@Test
public void test01() {

BigDecimal b = new BigDecimal("1.1514");
System.out.println(b); // 1.1514

// 四舍五入
b.setScale(2, BigDecimal.ROUND_HALF_UP); // 1.15
b.setScale(1, BigDecimal.ROUND_HALF_UP); // 1.2

 // 大于5进位,小于等于5舍弃
b.setScale(1, BigDecimal.ROUND_HALF_DOWN); // 1.2
b.setScale(3, BigDecimal.ROUND_HALF_DOWN); // 1.151

// 进位与舍位
 b.setScale(1, BigDecimal.ROUND_UP); // 1.2 (四舍五入进位)
b.setScale(1, BigDecimal.ROUND_DOWN); // 1.1 (直接舍弃多为的小数位)
}

③:运算
b1, b2 都为 Bigdecimal对象
加:b1.add(b2)
减:b1.subtract(b2)
乘:b1.multiply(b2)
除:b1.div(b2)

 

posted @ 2021-03-04 10:55  one剑飘红  阅读(356)  评论(0编辑  收藏  举报