This repository was archived by the owner on Dec 1, 2023. It is now read-only.
File tree Expand file tree Collapse file tree 1 file changed +8
-1
lines changed Expand file tree Collapse file tree 1 file changed +8
-1
lines changed Original file line number Diff line number Diff line change @@ -1581,17 +1581,20 @@ impl<T: Iterator<Item = char>> Parser<T> {
1581
1581
}
1582
1582
1583
1583
let mut dec = 1.0 ;
1584
+ let mut frac = 0.0 ;
1584
1585
while !self . eof ( ) {
1585
1586
match self . ch_or_null ( ) {
1586
1587
c @ '0' ... '9' => {
1587
1588
dec /= 10.0 ;
1588
- res += ( ( ( c as isize ) - ( '0' as isize ) ) as f64 ) * dec;
1589
+ frac += ( ( ( c as isize ) - ( '0' as isize ) ) as f64 ) * dec;
1589
1590
self . bump ( ) ;
1590
1591
}
1591
1592
_ => break ,
1592
1593
}
1593
1594
}
1594
1595
1596
+ res += frac;
1597
+
1595
1598
Ok ( res)
1596
1599
}
1597
1600
@@ -2945,6 +2948,7 @@ mod tests {
2945
2948
assert_eq ! ( Json :: from_str( "0.4e5" ) , Ok ( F64 ( 0.4e5 ) ) ) ;
2946
2949
assert_eq ! ( Json :: from_str( "0.4e+15" ) , Ok ( F64 ( 0.4e15 ) ) ) ;
2947
2950
assert_eq ! ( Json :: from_str( "0.4e-01" ) , Ok ( F64 ( 0.4e-01 ) ) ) ;
2951
+ assert_eq ! ( Json :: from_str( "123456789.5024" ) , Ok ( F64 ( 123456789.5024 ) ) ) ;
2948
2952
assert_eq ! ( Json :: from_str( " 3 " ) , Ok ( U64 ( 3 ) ) ) ;
2949
2953
2950
2954
assert_eq ! ( Json :: from_str( "-9223372036854775808" ) , Ok ( I64 ( i64 :: MIN ) ) ) ;
@@ -2975,6 +2979,9 @@ mod tests {
2975
2979
let v: f64 = super :: decode ( "0.4e-01" ) . unwrap ( ) ;
2976
2980
assert_eq ! ( v, 0.4e-01 ) ;
2977
2981
2982
+ let v: f64 = super :: decode ( "123456789.5024" ) . unwrap ( ) ;
2983
+ assert_eq ! ( v, 123456789.5024 ) ;
2984
+
2978
2985
let v: u64 = super :: decode ( "0" ) . unwrap ( ) ;
2979
2986
assert_eq ! ( v, 0 ) ;
2980
2987
You can’t perform that action at this time.
0 commit comments