Configurable float and double printing. pretty_dtoa
Comes with lots of options for configuring different aspects of displaying floats, and has only 1 dependency total (including dependencies of dependencies), for very fast compile times.
This crate uses the ryu-floating-decimal crate (itself a fork of the ryu crate) to generate a "floating decimal", or a floating point with radix 10, and then it uses formatting rules particular to the configuration to create a formatted string.
This module is only slightly slow (usually between 1x and 2x slower than the default Display implementation for f64). Benchmarks can be run with cargo bench
.
Consider using pretty_dtoa
if the default behavior of Display
and alternative float printing libraries like ryu
is not ideal for one reason or another
```rust use pretty_dtoa::{dtoa, FmtFloatConfig};
let config = FmtFloatConfig::default() .forcenoenotation() // Don't use scientific notation .addpointzero(true) // Add .0 to the end of integers .maxsignificantdigits(4) // Stop after the first 4 non-zero digits .radixpoint(',') // Use a ',' instead of a '.' .round(); // Round after removing non-significant digits
assert_eq!(dtoa(12459000.0, config), "12460000,0"); ```
See the tests in src/lib.rs
for examples of each feature, and the documentation to see all configurable features.