BigDecimal类的常用方法

概述:

        java.math.BigDecimal 类表示超大的小数,并且可以解决小数运算的问题

构造方法:

 BigDecimal(double val) 将 double 转换为 BigDecimal
                        或者是 double 的二进制浮点值准确的十进制表示形式。

 BigDecimal(String val) 将 BigDecimal 的字符串表示形式转换为 BigDecimal。

成员方法:

 BigDecimal add(BigDecimal augend) 
                        返回一个 BigDecimal,其值为 (this + augend)

 BigDecimal subtract(BigDecimal subtrahend) 
                        返回一个 BigDecimal,其值为 (this - subtrahend)

 BigDecimal multiply(BigDecimal multiplicand) 
                        返回一个 BigDecimal,其值为(this × multiplicand)

 BigDecimal divide(BigDecimal divisor) 
                        返回一个 BigDecimal,其值为 (this / divisor)
    注意:divide方法除不尽
    会报错,java.lang.ArithmeticException异常
    需要调用另一个方法(重载)

BigDecimal divide(BigDecimal divisor, int scale, RoundingMode roundingMode)
返回一个 BigDecimal,其值为 (this / divisor)
     参数1 divisor:除数对应的BigDecimal对象
     参数2 scale:精确到位数
     参数3 roundingMode:RoundingMode枚举:RoundingMode.HALF_UP 四舍五入

成员方法演示:

        // 加法运算
        BigDecimal b1 = new BigDecimal("0.09");
        BigDecimal b2 = new BigDecimal("0.01");
        BigDecimal r1 = b1.add(b2);
        System.out.println(r1);

        // 减法运算
        BigDecimal b3 = new BigDecimal("1.0");
        BigDecimal b4 = new BigDecimal("0.32");
        BigDecimal r2 = b3.subtract(b4);
        System.out.println(r2);

        // 乘法运算
        BigDecimal r3= b1.multiply(b2);
        System.out.println(r3);

        // 除法运算
        BigDecimal b5 = new BigDecimal("1.301");
        BigDecimal b6 = new BigDecimal("100");
        BigDecimal r4 = b5.divide(b6);
        System.out.println(r4);

        // 有问题的除法运算
        BigDecimal b7 = new BigDecimal("10");
        BigDecimal b8 = new BigDecimal("3");
        BigDecimal r5 = b7.divide(b8,5, RoundingMode.HALF_UP);
        System.out.println(r5);
        
        10除以3除不尽,调用的另一个方法(重载divide)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值