BigDecimal类型计算和比较大小

BigDecimal 由任意精度的整数非标度值 和 32 位的整数标度 (scale) 组成。如果为零或正数,则标度是小数点后的位数。如果为负数,则将该数的非标度值乘以 10 的负 scale 次方。因此,BigDecimal 表示的数值是 (unscaledValue × 10-scale)。

BigDecimal对金额的计算有着很友好的公式,希望能帮助到大家

一:计算,加减乘除

BigDecimal提供了内置的加减乘除函数

  • 加法:add()函数
  • 减法:subtract()函数
  • 乘法:multiply()函数
  • 除法:divide()函数
public static void main(String[] args) {
        //add 加法
        //subtract 减法
        //multiply 乘法
        //divide 除法
        BigDecimal B1 = new BigDecimal("9");
        BigDecimal B2 = new BigDecimal("3");
        System.out.println("B1+B2="+B1.add(B2));//B1.add(B2)
        System.out.println("B1-B2="+B1.subtract(B2));//B1.subtract(B2)
        System.out.println("B1*B2="+B1.multiply(B2));//B1.multiply(B2)
        System.out.println("B1/B2="+B1.divide(B2,2));//B1.divide(B2) 注:roundingMode(如果B1不能整除B2,roundingMode是精确到小数点几位,这里是精确到小数点后两位)

    }
输出结果
B1+B2=12
B1-B2=6
B1*B2=27
B1/B2=3

二:比较大小

BigDecimal的compareTo方法可以忽略精度的不同,只比较数值是否相同。

public static void main(String[] args) {
        BigDecimal B1 = new BigDecimal("9");
        BigDecimal B2 = new BigDecimal("3");

        //前提为a、b均不能为null
        if(B1.compareTo(B2) == -1){
            System.out.println("a小于b");
        }

        if(B1.compareTo(B2) == 0){
            System.out.println("a等于b");
        }

        if(B1.compareTo(B2) == 1){
            System.out.println("a大于b");
        }

        if(B1.compareTo(B2) > -1){
            System.out.println("a大于等于b");
        }

        if(B1.compareTo(B2) < 1){
            System.out.println("a小于等于b");
        }
    }
输出结果
a大于b
a大于等于b

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值