#decimal #pure #integer #abs #precision #numbers #decimal-digits

nightly decimate

纯 Rust 实现的简单十进制库

4 个版本

使用旧的 Rust 2015

0.2.2 2017 年 8 月 14 日
0.2.1 2017 年 7 月 31 日
0.2.0 2017 年 7 月 30 日
0.1.0 2016 年 2 月 24 日

#8#decimal-digits

MIT 许可协议

26KB
606

纯 Rust 实现的十进制浮点数。

数字表示为尾数和指数。尾数存储在一个整数中,该整数由类型参数指定,因此基本操作应该相当快。

当使用有限的整数类型作为尾数时,几乎所有操作都可能引起整数溢出。溢出处理方式与标准整数类型相同:调试构建时崩溃,发布构建时静默忽略。

该库的主要用途是在金融数据上快速、低开销的操作,当数字的精度和大小事先已知且需要将数字不精确转换为整数和标准浮点类型以加快计算速度时。

该库实现了非标准的精度处理。十进制数的行为类似于定点数。一元操作 -abs 不改变精度(小数部分的十进制位数)。操作 +-/% 如果两个操作数的精度相同,则也不会改变精度。如果不相同,则使用较高的精度(例如,12.3 + 11.111 == 23.411)。

乘法是唯一的例外:结果的精度是操作数精度的总和(例如,123.4 * 0.2 == 24.68)。

依赖项

~285–650KB
~13K SLoC