This is a Rust implementation of the Schufbach algorithm that converts IEEE-754 double-precision floating-point values to their string decimal representation.
It is performant and has a relatively small footprint. For performance comparisons, check the Drachennest project or the Dragonbox project.
WARNING! This is very much work-in-progress.
The code is functional but must still be more thoroughly tested and optimized. The API is not considered as definitive yet, not is the code architecture.
Current features: - double-precision values (f64) are supported - a simple function converts values to a simple string format, either fixed or scientific depending on the value - a more complex function offers more choices, like - fixed / scientific format selection - precision - correct rounding to even - interface through method or Display trait
Planned features: - engineering format
The algorithm is described by its author in the following article:
The author made a Java implementation:
The Rust code is mainly a translation from Alexander Bolz's C++ implementation:
https://github.com/abolz/Drachennest
with the following licence:
Copyright 2020 Alexander Bolz
Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE10.txt or copy at https://www.boost.org/LICENSE10.txt)
The schubfach
crate is tested for rustc 1.68 and greater, on Windows 64-bit and Linux 64/32-bit platforms. There shouldn't be any problem with older versions.
Licensed under MIT license.