情况,springBoot传数据给前端的时候,debug的时候发现数据的精度还是存在的,比如后台传 {money:1.00,price:2.30},传到前台就变成了{money:1,price:2.3},这样是明显的精度的丢失了
解决办法是:1,是用string去传给前端 2,使用注解@JsonSerialize(using=BigDecimalSerialize.class)
public class BigDecimalSerialize extends JsonSerializer<BigDecimal>{
@override
public void serialize(BigDecimal value,JsonGenerator gen,SerializerProvider serializerProvider)throws IOException{
if(value !=null && !"".equals(value)){
gen.writeString(value.setScale(2,BigDecimal.ROUND_HALFDOWN)+"");
}else{
gen.writeString(value.toString());
}
}
}
在SpringBoot中,从后端向前端传输带有小数的数据时,可能会遇到精度丢失的问题。例如,数值1.00可能被简化为1,造成信息不完整。本文介绍了解决此问题的两种方法:一是将数值作为字符串传递;二是使用自定义的BigDecimalSerialize类,通过@JsonSerialize注解确保数据精度。
6140

被折叠的 条评论
为什么被折叠?



