将浮点数转换为小数字符串
Ryu & Ryu Printf [](https://travis-ci.org/ulfjack/ryu) 此项目包含用最短、固定 %f 和科学 %e 格式将 IEEE-754 浮点数转换为十进制字符串的例程。主要实现是用 C 语言编写的,还有一个将最短转换到 Java 的移植版本。所有算法都已在经同行评审的出版物中发表。在本文撰写时,这些是已知的最快的浮点到字符串转换算法。固定和科学转换例程比通常的 sprintf 实现快几倍(我们与 glibc、苹果的 libc、MSVC 等进行了比较)。为 16 位和 32 位 IEEE 浮点数生成科学和固定输出格式,可以通过转换为 64 位来实现,然后使用 64 位例程。请注意,目前尚无 128 位实现。在转换为最短时,请不要强制类型转换;最短转换是基于源类型的精度,强制转换为不同类型将无法返回预期的输出。此外,还有一个高度优化的 32 位和 64 位实现,以及一个通用的 128 位实现,可处理最多 128 位的任何 IEEE 格式。以下是 C 实现支持的转换模式:|IEEE 类型|支持的输出格式| |-------------------|---------------------------------| |16 位(半)|最短(通过 ryugeneric128.h)| |32 位(浮点)|最短| |64 位(双精度)|最短、科学、固定| |80 位(长双精度)|最短(通过 ryugeneric128.h)| |128 位(float128)|最短(通过 ryugeneric128.h)| 代码持续在 Ubuntu 18.04、MacOS High Sierra 和 Windows Server 1803 版本上进行测试。第三方/ 目录外的所有代码均由 Ulf Adams 和贡献者拥有版权,可根据 Apache 2.0 许可证自由使用。或者,可根据 Boost 1.0 许可证自由使用 ryu/ 目录中的文件。所有贡献都必须保持这些许可证。Ryu Ryu 生成了保持往返安全性的浮点数的最短十进制表示。也就是说,正确的解析器可以恢复原始数字。对于 e…
暂无开放 Issues,或尚未同步最近议题。