Commit b326c6f9 authored by duanruiming's avatar duanruiming

[add] 优化特殊字段保留两位小数

parent 1c197c15
...@@ -5,6 +5,7 @@ import com.fasterxml.jackson.databind.JsonSerializer; ...@@ -5,6 +5,7 @@ import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider; import com.fasterxml.jackson.databind.SerializerProvider;
import java.io.IOException; import java.io.IOException;
import java.math.BigDecimal;
import java.text.DecimalFormat; import java.text.DecimalFormat;
/** /**
...@@ -17,7 +18,9 @@ public class Double2TwoDecimalPlacesSerializer extends JsonSerializer<Double> { ...@@ -17,7 +18,9 @@ public class Double2TwoDecimalPlacesSerializer extends JsonSerializer<Double> {
@Override @Override
public void serialize(Double value, JsonGenerator gen, SerializerProvider serializers) throws IOException { public void serialize(Double value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
if (value != null) { if (value != null) {
String formattedValue = df.format(value); // 将 Double 转换为 BigDecimal,避免浮点数精度问题
BigDecimal bd = BigDecimal.valueOf(value).setScale(2, BigDecimal.ROUND_HALF_UP);
String formattedValue = df.format(bd.doubleValue());
gen.writeString(formattedValue); gen.writeString(formattedValue);
} else { } else {
gen.writeNull(); gen.writeNull();
......
...@@ -3,8 +3,10 @@ package net.wanji.databus.config; ...@@ -3,8 +3,10 @@ package net.wanji.databus.config;
import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider; import com.fasterxml.jackson.databind.SerializerProvider;
import net.wanji.common.utils.tool.JacksonUtils;
import java.io.IOException; import java.io.IOException;
import java.math.BigDecimal;
import java.text.DecimalFormat; import java.text.DecimalFormat;
/** /**
...@@ -17,7 +19,9 @@ public class DoubleToTwoDecimalPlacesSerializer extends JsonSerializer<Double> { ...@@ -17,7 +19,9 @@ public class DoubleToTwoDecimalPlacesSerializer extends JsonSerializer<Double> {
@Override @Override
public void serialize(Double value, JsonGenerator gen, SerializerProvider serializers) throws IOException { public void serialize(Double value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
if (value != null) { if (value != null) {
String formattedValue = df.format(value); // 将 Double 转换为 BigDecimal,避免浮点数精度问题
BigDecimal bd = BigDecimal.valueOf(value).setScale(2, BigDecimal.ROUND_HALF_UP);
String formattedValue = df.format(bd.doubleValue());
gen.writeString(formattedValue); gen.writeString(formattedValue);
} else { } else {
gen.writeNull(); gen.writeNull();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment