将BigDecimal类型参数转成%, 并保留两位小数

问题: 我希望前台显示11%, 但是前台显示的值为0.11

代码实现:

            //拿到两个BigDecimal参数
            BigDecimal price = goodsDetailVo.getPrice();
            BigDecimal realPrice = goodsDetailVo.getRealPrice();
            //将Decimal格式修改为百分数
            DecimalFormat decimalFormat = new DecimalFormat("#%");
            String discount = null;
            //非空判断
            if(price!=null && !price.equals(BigDecimal.ZERO)){
                //保留两位小数, 四舍五入,相等时取+1
                MathContext mathContext = new MathContext(2,RoundingMode.UP);
                BigDecimal _off = realPrice.divide(price,mathContext);
                BigDecimal off = BigDecimal.valueOf(1).subtract(_off);
                discount = decimalFormat.format(off);
            }           

效果:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值