Very small floating point values serialize with an extra ".0" at the end:
fn main() {
let config = ser::PrettyConfig::new();
let result = ser::to_string_pretty(&0.00000000000000005, config).unwrap();
assert_eq!(result, "0.00000000000000005");
}
thread 'main' panicked at 'assertion failed: `(left == right)`
left: `"0.00000000000000005.0"`,
right: `"0.00000000000000005"`', src/main.rs:6:3
Very small floating point values serialize with an extra ".0" at the end: