#arithmetic-operations #numbers #forms #manipulate #standard #convert #numerical

no-std standardform

使用这个Rust标准形式实现,轻松操作像2e19或2*10^4这样的数字。轻松简化、转换和操作大型数值表达式。

10个版本

0.2.0 2023年11月17日
0.1.9 2023年10月24日
0.1.4 2023年9月29日
0.1.0 2023年8月23日

算法分类中排名第593

Download history 17/week @ 2024-03-09 4/week @ 2024-03-16 192/week @ 2024-03-23 12/week @ 2024-03-30 1/week @ 2024-04-06 1/week @ 2024-05-25

每月下载量122
num-notation使用

MIT/Apache

64KB
1K SLoC

Rust 819 SLoC // 0.0% comments JavaScript 328 SLoC // 0.2% comments TypeScript 72 SLoC // 0.6% comments

standardform-rs

使用这个Rust标准形式实现,轻松操作像2e19或2*10^4这样的数字。轻松简化、转换和操作大型数值表达式。

功能

  • 创建和操作标准形式的数字。
  • 对具有不同指数的数字执行算术运算。
  • 轻松比较标准形式的数字。
  • 克隆和调试StandardForm结构体的派生实现。
  • num_traits包一起集成。
  • 使用hash功能,标准形式还可以进行散列。
  • 使用nom功能与nom集成。
  • 还提供no-std
  • 提供对其他语言的绑定(启用 'lang name'功能以使用绑定)。

使用方法

将此库添加到您的Cargo.toml

[dependencies]
standardform = "0.1.1" # Version  

要启用与num_traits的集成,启用num功能

[dependencies]
standardform = { version = "0.1.1" , features = ["num"] }

要启用散列,启用hash功能

[dependencies]
standardform = { version = "0.1.1" , features = ["hash"] }
To enable intergation it with `nom` , enable `nom` feature:

```toml
[dependencies]
standardform = { version = "0.1.1" , features = ["nom"] }

然后

use standardform::StandardForm;

fn main() {
    // Create a new StandardForm instance
    let number = StandardForm::new(2.0, 19);

    // Perform arithmetic operations
    let result = number * StandardForm::new(1.5, -3);

    // Compare numbers
    if result > StandardForm::new(1.0, 10) {
        println!("Result is greater than 1*10^108.");
    }
}

请注意,这里提供的示例已简化,仅供参考。有关包的全面文档,请访问包文档以更好地了解包的功能和API。此外,您还可以探索一个网站,展示其功能的一部分。

JavaScript绑定

如果您不想自己构建JavaScript绑定,您可以从发布页面下载预构建的pkg目录。按照以下说明使用预构建的'js'绑定

  1. 发布页面下载预构建的pkg目录。

  2. 解压下载的存档。

  3. 确保您的HTML文件引用了预构建的JavaScript文件。将以下脚本标签添加到您的HTML文件中

    <script type="module">
        import init , { StandardForm } from '/path-to-pkg/standardform.js';
    
        await init()
    </script>
    

    '/path-to-pkg/standardform.js'替换为已下载的'standardform.js'文件的正确路径。

  4. 您的库现在可以用于JavaScript代码中。

如果您正在使用webpack,请遵循此指南

以下是如何使用不同部署和集成方法使用此代码的指南

注意:虽然使用预构建的绑定很方便,但如果您计划对Rust代码进行修改,建议自己构建绑定,如下文所述

JavaScript集成

为了实现Rust和JavaScript之间的无缝集成,此库支持WebAssembly(Wasm)。按照以下步骤更新绑定,当Rust代码发生变化时

  1. 确保您已安装wasm-pack

    cargo install wasm-pack
    
  2. 构建Wasm包

    wasm-pack build --target web --out-dir ./website
    
  3. 如果您的Rust代码进行了修改,请重新构建Wasm包以更新绑定

这确保了您的JavaScript绑定与Rust代码的任何更改保持同步。记住,每次修改Rust实现时都要更新绑定,以保持两种语言之间的一致集成。

贡献

欢迎贡献!如果您发现了一个错误或想到了一个增强,请随时打开一个issue或提交一个pull request。

依赖项

~0.3–1.2MB
~27K SLoC