@@ -2491,13 +2491,13 @@ public void copyCurrentEvent(JsonParser p) throws IOException
2491
2491
}
2492
2492
case ID_NUMBER_FLOAT :
2493
2493
{
2494
- NumberType n = p .getNumberType ();
2495
- if (n == NumberType . BIG_DECIMAL ) {
2496
- writeNumber (p . getDecimalValue () );
2497
- } else if (n == NumberType . FLOAT ) {
2498
- writeNumber (p . getFloatValue () );
2494
+ Number n = p .getNumberValueExact ();
2495
+ if (n instanceof Float ) {
2496
+ writeNumber (( Float ) n );
2497
+ } else if (n instanceof BigDecimal ) {
2498
+ writeNumber (( BigDecimal ) n );
2499
2499
} else {
2500
- writeNumber (p . getDoubleValue ());
2500
+ writeNumber (n . doubleValue ());
2501
2501
}
2502
2502
break ;
2503
2503
}
@@ -2636,13 +2636,13 @@ protected void _copyCurrentContents(JsonParser p) throws IOException
2636
2636
}
2637
2637
case ID_NUMBER_FLOAT :
2638
2638
{
2639
- NumberType n = p .getNumberType ();
2640
- if (n == NumberType . BIG_DECIMAL ) {
2641
- writeNumber (p . getDecimalValue () );
2642
- } else if (n == NumberType . FLOAT ) {
2643
- writeNumber (p . getFloatValue () );
2639
+ Number n = p .getNumberValueExact ();
2640
+ if (n instanceof Float ) {
2641
+ writeNumber (( Float ) n );
2642
+ } else if (n instanceof BigDecimal ) {
2643
+ writeNumber (( BigDecimal ) n );
2644
2644
} else {
2645
- writeNumber (p . getDoubleValue ());
2645
+ writeNumber (n . doubleValue ());
2646
2646
}
2647
2647
break ;
2648
2648
}
0 commit comments