#decimal-number #decimal #big-float #bignum #increase

no-std num-bigfloat

纯Rust实现的提高精度浮点数

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 数学

Download history 713/week @ 2024-04-23 675/week @ 2024-04-30 688/week @ 2024-05-07 589/week @ 2024-05-14 752/week @ 2024-05-21 792/week @ 2024-05-28 798/week @ 2024-06-04 680/week @ 2024-06-11 856/week @ 2024-06-18 769/week @ 2024-06-25 627/week @ 2024-07-02 614/week @ 2024-07-09 465/week @ 2024-07-16 720/week @ 2024-07-23 589/week @ 2024-07-30 506/week @ 2024-08-06

2,381 每月下载量
用于 11 个Crate(10 个直接使用)

MIT 协议

4MB
157K SLoC

Tests Minimum rustc version

纯Rust实现的提高精度浮点数。

任意精度数

有一个库分支实现了任意精度的浮点数:astro-float。新库使用了更复杂的算法,精度更高,测试覆盖率更好。

理由

对于Rust,有几个提高精度的数字实现的显著例子。在这些库中,可以提到 num-bigintrust_decimal

尽管这些库在很多方面都很出色,但它们不允许你在保持相当高精度的同时执行数字操作。

还有一些包装库,如 rug,它依赖于MPFR来实现任意精度浮点数。

此库完全用Rust编写,提供的精度高于f32、f64和一些其他提高精度的数据类型。

数字特征

数字具有固定大小的尾数和指数。

名称
基数 10
尾数中的小数位数 40
指数最小值 -128
指数最大值 127

no_std

库可以在不使用标准Rust库的情况下使用。这可以通过禁用 std 功能来实现。

性能

可以在以下位置找到 num-bigfloatrugMPFR)和 astro-float 的基准测试: bigfloat-bench

其他功能

该库依赖于 rand,该库在 BigFloat::random_normal 中使用。可以通过禁用 rand 功能来排除此依赖。启用 rand 功能需要启用 std 功能。

该库还依赖于 serde,这也是可选的,可以通过禁用 serde 功能来消除。

此外,该库实现了 num-traits。可以通过禁用 num-traits 功能来排除对 num-traits 的依赖。

依赖项