3 releases (breaking)
0.3.0 | May 4, 2021 |
---|---|
0.2.0 | Mar 24, 2021 |
0.1.0 | Jun 4, 2020 |
#167 in Value formatting
10,499 downloads per month
Used in 86 crates
(8 directly)
36KB
694 lines
Pretty dtoa
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
Example
use pretty_dtoa::{dtoa, FmtFloatConfig};
let config = FmtFloatConfig::default()
.force_no_e_notation() // Don't use scientific notation
.add_point_zero(true) // Add .0 to the end of integers
.max_significant_digits(4) // Stop after the first 4 non-zero digits
.radix_point(',') // 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.
Dependencies
~74KB