cc @alexcrichton. It looks like we have a lot of duplicated code with [libcore/fmt/float.rs](https://github.com/rust-lang/rust/blob/master/src/libcore/fmt/float.rs) and [std::num::strconv::float_to_str_bytes_common](https://github.com/rust-lang/rust/blob/master/src/libstd/num/strconv.rs#L261). Can this code be merged?