diff options
Diffstat (limited to 'src/main/java')
-rw-r--r-- | src/main/java/com/fasterxml/jackson/databind/util/TokenBuffer.java | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/src/main/java/com/fasterxml/jackson/databind/util/TokenBuffer.java b/src/main/java/com/fasterxml/jackson/databind/util/TokenBuffer.java index 8145f71a3..8fa86e7df 100644 --- a/src/main/java/com/fasterxml/jackson/databind/util/TokenBuffer.java +++ b/src/main/java/com/fasterxml/jackson/databind/util/TokenBuffer.java @@ -1228,16 +1228,10 @@ sb.append("NativeObjectIds=").append(_hasNativeObjectIds).append(","); if (_forceBigDecimal) { writeNumber(p.getDecimalValue()); } else { - switch (p.getNumberType()) { - case BIG_DECIMAL: - writeNumber(p.getDecimalValue()); - break; - case FLOAT: - writeNumber(p.getFloatValue()); - break; - default: - writeNumber(p.getDoubleValue()); - } + // 09-Jul-2020, tatu: Used to just copy using most optimal method, but + // issues like [databind#2644] force to use exact, not optimal type + final Number n = p.getNumberValueExact(); + _appendValue(JsonToken.VALUE_NUMBER_FLOAT, n); } break; case VALUE_TRUE: |