#float #convert #floating-point #string #algorithm #display #ftoa

schubfach

施布法算法:将浮点数转换为字符串表示

1 个不稳定版本

0.0.1 2023年3月10日

#125#float

MIT 许可证

155KB
2K SLoC

schubfach

crate documentation crate


施布法算法

这是 Schufbach 算法的一个 Rust 实现,用于将 IEEE-754 双精度浮点值转换为它们的字符串十进制表示。

它性能良好,占用空间相对较小。性能比较,请查看 Drachennest 项目Dragonbox 项目

状态

警告!这是一个正在进行中的工作。

代码是功能性的,但还需要更彻底的测试和优化。API 还没有被认为是最定稿的,代码架构也是如此。

当前功能

  • 支持双精度值 (f64)
  • 一个简单的函数将值转换为简单的字符串格式,可以是固定格式或科学格式,取决于值
  • 一个更复杂的函数提供了更多选择,例如
    • 固定/科学格式选择
    • 精度
    • 正确四舍五入到偶数
    • 通过方法或 Display 特性进行接口

计划中的功能

  • 工程格式

参考文献

算法由其作者在以下文章中描述

作者实现了一个 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 许可证 下授权。

依赖关系