数据库存 9999999999999999 的时候 前端显示会变成100...... 原因是数据16位,浏览器那边会转换...
所以转为String处理即可。
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import org.springframework.boot.jackson.JsonComponent;
import java.io.IOException;
import java.math.BigDecimal;
/**
* @description: BigDecimalToStringSerializer
* @author: nice
* @created: 2024/01/31 15:04
*/
@JsonComponent
public class BigDecimalToStringSerializer extends StdSerializer<BigDecimal> {
public static final BigDecimalToStringSerializer instance = new BigDecimalToStringSerializer();
public BigDecimalToStringSerializer() {
super(BigDecimal.class);
}
@Override
public void serialize(BigDecimal value, JsonGenerator gen, SerializerProvider provider) throws IOException {
if (value == null) {
gen.writeString("0.00");
} else {
String val = value.toPlainString();
gen.writeString(val);
}
}
}
参考: