BigDecimal 的使用场景与加减乘除计算

目录

一、BigDecimal 的使用场景        

1.1 BigDecimal的初始化

二、BigDecimal的加(add)减(subtract)乘(multiply)除(divide)运算


一、BigDecimal 的使用场景        

        在Java中如果当一个数的大小超过long型范围(能够表示64位的整数)时就可以使用BigDecimal类型。

1.1 BigDecimal的初始化

        使用BigDecimal类构造方法传入double类型时,计算的结果也是不精确的。因为不是所有的浮点数都能够被精确的表示成一个double 类型值,有些浮点数值不能够被精确的表示成 double 类型值,因此它会被表示成与它最接近的 double 类型的值。

        因此必须改用传入String的构造方法,这一点在BigDecimal类的构造方法注释中有说明。

  1. BigDecimal a = new BigDecimal("0.005");//使用字符串传参
  2. BigDecimal b = new BigDecimal("1000000");
  3. BigDecimal c = new BigDecimal("-1000000");

二、BigDecimal的加(add)减(subtract)乘(multiply)除(divide)运算

   使用上述3个已经初始化的BigDecimal对象a,b,c

   方法1、BigDecimal result1 = a.add(b);//加法

   方法2、BigDecimal result1 = a.add(new BigDecimal("0.005"));

 

   方法1、BigDecimal result2 = a.subtract(b); //减法

   方法2、BigDecimal result2 = a.subtract(new BigDecimal("0.005"));

   方法1、BigDecimal result3 = a.multiply(b);//乘法

   方法2、BigDecimal result3 = a.multiply(new BigDecimal("0.005"));

   BigDecimal result4 = a.abs();//绝对值

 

   BigDecimal result5 = a.divide(b,20,BigDecimal.ROUND_HALF_UP); //除法

 

除法divide()参数使用注意事项:

        使用除法函数在divide的时候要设置各种参数,要精确的小数位数和舍入模式,不然会出现报错我们可以看到divide函数配置的参数如下:

即为 (BigDecimal divisor 除数, int scale 保留小数位数, int roundingMode 舍入模式)

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值