1 个不稳定版本
0.0.1 | 2023年3月10日 |
---|
#125 在 #float
155KB
2K SLoC
schubfach
施布法算法
这是 Schufbach 算法的一个 Rust 实现,用于将 IEEE-754 双精度浮点值转换为它们的字符串十进制表示。
它性能良好,占用空间相对较小。性能比较,请查看 Drachennest 项目 或 Dragonbox 项目。
状态
警告!这是一个正在进行中的工作。
代码是功能性的,但还需要更彻底的测试和优化。API 还没有被认为是最定稿的,代码架构也是如此。
当前功能
- 支持双精度值 (f64)
- 一个简单的函数将值转换为简单的字符串格式,可以是固定格式或科学格式,取决于值
- 一个更复杂的函数提供了更多选择,例如
- 固定/科学格式选择
- 精度
- 正确四舍五入到偶数
- 通过方法或 Display 特性进行接口
计划中的功能
- 工程格式
参考文献
算法由其作者在以下文章中描述
- Raffaello Giulietti, "施布法渲染双精度浮点数", 2020年3月16日,
作者实现了一个 Java 版本
Rust 代码主要来自 Alexander Bolz 的 C++ 实现
-
https://github.com/abolz/Drachennest
以下许可证
Copyright 2020 Alexander Bolz Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at https://boost.ac.cn/LICENSE_1_0.txt)
兼容性
schubfach 包已在 rustc 1.68 及以上版本上进行测试,在 Windows 64 位和 Linux 64/32 位平台上。不应存在与旧版本相关的问题。
许可证
在 MIT 许可证 下授权。