问题: 我希望前台显示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);
}
效果: