#parser #high-precision #float #f64 #parse #floating-point

strtod

A high precision floating point parser implementation for Rust

2 unstable releases

Uses old Rust 2015

new 0.1.0 Nov 22, 2024
0.0.1 Jun 22, 2015

#428 in Algorithms


Used in pgnumeric

MIT/Apache

50KB
1.5K SLoC

strtod for Rust

License

Introduction

strtod is a floating point parsing implementation for Rust with very high precision, far better than the built in Rust floating point parser. https://docs.rs/strtod The documentation can be found at https://docs.rs/strtod.

This is a maintained fork of strtod.

Remarks

The quality of the source is not really something to write home about. The reason for this is that this implementation is a verbatim translation from http://mxr.mozilla.org/mozilla-central/source/js/src/dtoa.c. That being said, the quality of the parser itself is very high.

The performance of this implementation should be OK. However there is room for improvement in the BigNum implementation that the parser uses, e.g. by caching instances or calculations. The original implementation does this, but this has been removed from this implementation.

Bugs

Bugs should be reported through github at http://github.com/kod-kristoff/strtod/issues.

Minimum Supported Rust Version

This library supports Rust version 1.16.0. Every change of the MSRV is done with a minor version bump.

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

No runtime deps