bigDecimal 返回前端保留小数点后两位问题解决

bigDecimal 返回前端保留小数点后两位问题解决

bigDecimal保留后两位小数 且 返回前端 不丢失小数点后的0 位数不够补零

例 后端返回 decimal 类型 5.00 到前端 会变成5

import com.fasterxml.jackson.annotation.JsonFormat;

例如
private BigDecimal rentMonth;


解决方法:

第一步:1、加注解:@JsonFormat(shape = JsonFormat.Shape.STRING)

备注:注解可以加在属性上或get方法上

第二步:2、修改get方法返回值

例如:

@JsonFormat(shape = JsonFormat.Shape.STRING)
public BigDecimal getRentMonth() {
   return rentMonth == null ? null : rentMonth.setScale(2, BigDecimal.ROUND_HALF_UP);
}

——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

后端 BigDecimal 保留两位小数 不足两位补0   

import java.math.BigDecimal;
import java.text.DecimalFormat;      
public static void main(String[] args) {

    // String s = "6.123456";
    // String s = "6.126";
    String s = "0.126";
    // 四舍五入
    BigDecimal value = new BigDecimal(s).setScale(2, BigDecimal.ROUND_HALF_UP);
    // 不足两位小数补0
    DecimalFormat decimalFormat = new DecimalFormat("0.00#");
    DecimalFormat decimalFormat1 = new DecimalFormat("#0.00");
    DecimalFormat decimalFormat2 = new DecimalFormat("#.00");
    String strVal = decimalFormat.format(value);
    System.out.println(strVal);
    System.out.println(new BigDecimal(strVal));
    System.out.println();

    String strVal1 = decimalFormat1.format(value);
    System.out.println(strVal1);
    System.out.println(new BigDecimal(strVal1));
    System.out.println();

    String strVal2= decimalFormat2.format(value);
    System.out.println(strVal2);
    System.out.println(new BigDecimal(strVal2));
    
}

结果:

 

备注 :
DecimalFormat decimalFormat1 = new DecimalFormat("#.00");

这格式化小数点前为零时,会丢失小数点前的0

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值