2个不稳定版本

0.1.0 2023年12月11日
0.0.2 2023年1月18日
0.0.1 2023年1月16日

5#i128

Download history 13/week @ 2024-03-10 56/week @ 2024-03-31 2/week @ 2024-04-07

每月 98 次下载

MIT 许可证

19KB
354

已废弃

此包已被废弃,并改用 https://crates.io/crates/soroban-fixed-point-math,不再维护。最后支持的版本是 0.0.2

如果您想使用这个crate名称,请给我发邮件(在Cargo.toml中列出)

旧的README

定点数学

Rust的轻量级定点数学库。专门为在Soroban和其他基于WASM的区块链环境中使用而编写。

安全性

这是一个实验性软件,按“现状”和“可用性”提供。

我们不提供任何保证,并且不会因任何使用此代码库而产生的损失负责。

用法

将其添加到您的Cargo.toml

[dependencies]
fixed-point-math = "<desired version>"

示例

定点数学支持目前添加到i128u64类型。对于任何支持的数字,您可以执行如下定点操作

use fixed_point_math::{STROOP, FixedPoint};

let x: u64 = 1_5000000;
let y: u64 = 2_0000000;
assert_eq!(x.fixed_mul_floor(y, STROOP).unwrap(), 3_0000000);

溢出

溢出结果的处理方式与Rust内置的“checked”数学相同,通过返回None

定点数学还处理幽灵溢出,其中中间计算溢出,但预期结果在范围内。此库为每个支持的类型以不同的方式管理这种情况

  • i128
    • 不进行额外处理。i128足够大,可以支持大多数具有7/9位小数的计算。然而,18位小数的数学可能会遇到溢出。
  • u64
    • 中间计算被缩放到u128,然后再次尝试。

致谢

此库受许多来源的启发或直接修改,主要是

WASM

支持的WASM目标 wasm32-unknown-unknown

贡献

欢迎贡献。请查看贡献指南(待办)!

许可证

本库采用MIT许可证发布。

无运行时依赖