19 个版本 (稳定)
1.7.1 | 2024年3月9日 |
---|---|
1.7.0 | 2023年9月10日 |
1.6.3 | 2023年8月15日 |
1.6.2 | 2023年2月3日 |
0.1.6 | 2022年6月19日 |
#117 in 数学
2,381 每月下载量
用于 11 个Crate(10 个直接使用)
4MB
157K SLoC
纯Rust实现的提高精度浮点数。
任意精度数
有一个库分支实现了任意精度的浮点数:astro-float。新库使用了更复杂的算法,精度更高,测试覆盖率更好。
理由
对于Rust,有几个提高精度的数字实现的显著例子。在这些库中,可以提到 num-bigint,rust_decimal。
尽管这些库在很多方面都很出色,但它们不允许你在保持相当高精度的同时执行数字操作。
还有一些包装库,如 rug,它依赖于MPFR来实现任意精度浮点数。
此库完全用Rust编写,提供的精度高于f32、f64和一些其他提高精度的数据类型。
数字特征
数字具有固定大小的尾数和指数。
名称 | 值 |
---|---|
基数 | 10 |
尾数中的小数位数 | 40 |
指数最小值 | -128 |
指数最大值 | 127 |
no_std
库可以在不使用标准Rust库的情况下使用。这可以通过禁用 std
功能来实现。
性能
可以在以下位置找到 num-bigfloat
,rug
(MPFR
)和 astro-float
的基准测试: bigfloat-bench。
其他功能
该库依赖于 rand,该库在 BigFloat::random_normal
中使用。可以通过禁用 rand
功能来排除此依赖。启用 rand
功能需要启用 std
功能。
该库还依赖于 serde,这也是可选的,可以通过禁用 serde
功能来消除。
此外,该库实现了 num-traits。可以通过禁用 num-traits
功能来排除对 num-traits
的依赖。