BigDecimal常用操作

BigDecimal常用操作

 //加法
    public BigDecimal add(BigDecimal decimalA, BigDecimal decimalB){
        return decimalA.add(decimalB);
    }

    //减法
    public BigDecimal subtract(BigDecimal decimalA, BigDecimal decimalB){
        return decimalA.subtract(decimalB);
    }

    //乘法
    public BigDecimal multiply(BigDecimal decimalA, BigDecimal decimalB){
        return decimalA.multiply(decimalB);
    }

    /**
     * 除法
     * RoundingMode.CEILING:取右边最近的整数
     * RoundingMode.DOWN:去掉小数部分取整,也就是正数取左边,负数取右边,相当于向原点靠近的方向取整
     * RoundingMode.FLOOR:取左边最近的正数
     * RoundingMode.HALF_DOWN:五舍六入,负数先取绝对值再五舍六入再负数
     * RoundingMode.HALF_UP:四舍五入,负数原理同上
     * RoundingMode.HALF_EVEN:这个比较绕,整数位若是奇数则四舍五入,若是偶数则五舍六入
     */
    public BigDecimal divide(BigDecimal decimalA, BigDecimal decimalB){
        return decimalA.divide(decimalB,RoundingMode.HALF_UP);
    }

    /**
     * 保留n位小数
     * RoundingMode.CEILING:取右边最近的整数
     * RoundingMode.DOWN:去掉小数部分取整,也就是正数取左边,负数取右边,相当于向原点靠近的方向取整
     * RoundingMode.FLOOR:取左边最近的正数
     * RoundingMode.HALF_DOWN:五舍六入,负数先取绝对值再五舍六入再负数
     * RoundingMode.HALF_UP:四舍五入,负数原理同上
     * RoundingMode.HALF_EVEN:这个比较绕,整数位若是奇数则四舍五入,若是偶数则五舍六入
     */
    public BigDecimal setScale(BigDecimal decimalA,int n){
        return decimalA.setScale(n,RoundingMode.HALF_UP);
    }

    /**
     * @param decimalA
     * @param decimalB
     * @return  比较大小
     * decimalA > decimalB ==>  1
     * decimalA == decimalB ==>  10
     * decimalA < decimalB ==>  -1
     */
    public int compareTo(BigDecimal decimalA, BigDecimal decimalB){
        return decimalA.compareTo(decimalB);
    }

    //绝对值
    public BigDecimal abs(BigDecimal decimalA){
        return decimalA.abs();
    }

    //获取符号(如果正数返回 1 , 如果负数返回 0)
    public int signum(BigDecimal decimalA, BigDecimal decimalB){
        return decimalA.signum();
    }

    //返回对象精度(就是返回有几个数字)
    public int precision(BigDecimal decimalA, BigDecimal decimalB){
        return decimalA.precision();
    }

    //小数点向左移n位
    public BigDecimal movePointLeft(BigDecimal decimalA,int n){
        return decimalA.movePointLeft(n);
    }

    //小数点向右移n位
    public BigDecimal movePointRight(BigDecimal decimalA,int n){
        return decimalA.movePointRight(n);
    }

    //取反(就是正数转成负数或负数转成正数)
    public BigDecimal negate(BigDecimal decimalA){
        return decimalA.negate();
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值