File tree Expand file tree Collapse file tree 2 files changed +4
-4
lines changed Expand file tree Collapse file tree 2 files changed +4
-4
lines changed Original file line number Diff line number Diff line change @@ -292,10 +292,9 @@ impl Display for Number {
292
292
#[ cfg( not( feature = "arbitrary_precision" ) ) ]
293
293
fn fmt ( & self , formatter : & mut fmt:: Formatter ) -> fmt:: Result {
294
294
match self . n {
295
- N :: PosInt ( u) => Display :: fmt ( & u, formatter) ,
296
- N :: NegInt ( i) => Display :: fmt ( & i, formatter) ,
297
- // Preserve `.0` on integral values, which Display hides
298
- N :: Float ( f) => Debug :: fmt ( & f, formatter) ,
295
+ N :: PosInt ( u) => formatter. write_str ( itoa:: Buffer :: new ( ) . format ( u) ) ,
296
+ N :: NegInt ( i) => formatter. write_str ( itoa:: Buffer :: new ( ) . format ( i) ) ,
297
+ N :: Float ( f) => formatter. write_str ( ryu:: Buffer :: new ( ) . format_finite ( f) ) ,
299
298
}
300
299
}
301
300
Original file line number Diff line number Diff line change @@ -28,6 +28,7 @@ fn value_number() {
28
28
assert_eq ! ( format!( "{:?}" , json!( -1 ) ) , "Number(-1)" ) ;
29
29
assert_eq ! ( format!( "{:?}" , json!( 1.0 ) ) , "Number(1.0)" ) ;
30
30
assert_eq ! ( Number :: from_f64( 1.0 ) . unwrap( ) . to_string( ) , "1.0" ) ; // not just "1"
31
+ assert_eq ! ( Number :: from_f64( 12e40 ) . unwrap( ) . to_string( ) , "1.2e41" ) ;
31
32
}
32
33
33
34
#[ test]
You can’t perform that action at this time.
0 commit comments