作用:返回给前端的实体类中的double类型的数据,需要保留两位小数,但是不足两位不能补0,如double a = 648.0000056,要返回648,而不能返回648.00。
实现方法:
1.首先添加封装一个工具类,代码如下:
package com.enn.zykzq.fastUtil; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; import java.io.IOException; import java.math.RoundingMode; import java.text.DecimalFormat; import java.util.Objects; /** * @author zhangyakun * @date 2020/6/15 15:48 */ //修改JsonSerializer<Double> 到需要的类型,默认为JsonSerializer,参数为Object value public class JsonSerializerUtils extends JsonSerializer<Double> { @Override public void serialize(Double value, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException { if (Objects.nonNull(value)) { //保留2位小数#代表末位是0舍去 DecimalFormat decimalFormat = new DecimalFormat("0.##"); //四舍五入 decimalFormat.setRoundingMode(RoundingMode.HALF_UP); String result = decimalFormat.format(value); jsonGenerator.writeNumber(Double.valueOf(result)); } else { jsonGenerator.writeNumber(Double.valueOf(0)); } } }
2.然后直接在需要处理的实体类中的double类型的数据上面加上注解即可
//用法:实体类添加 @JsonSerialize(using = JsonSerializerUtils.class) private double processMoney;