#decimal-number #decimal #incremental #big-number #large-number

break_infinity

为增量游戏提供Rust库,用于处理1e9e15以内的更大数字

5个版本 (3个破坏性更新)

0.4.0 2024年8月4日
0.3.0 2021年10月5日
0.2.1 2021年3月6日
0.2.0 2021年2月27日
0.1.0 2020年12月19日

数学类别中排名第233

Download history 11/week @ 2024-07-05 3/week @ 2024-07-19 8/week @ 2024-07-26 120/week @ 2024-08-02 7/week @ 2024-08-09

每月下载量138

授权:MPL-2.0

38KB
944

break-infinity.rs

将Patashu的break_infinity.js移植到Rust。它有一个Decimal结构体,可以达到最大值1e9e15,而不是f64的最大值1.79e308。

安装

您可以通过将以下行添加到您的Cargo.toml来安装此包。

[dependencies]
break_infinity = "0.3.0"
# ...

功能

  • full-range:将最大值增加到1e1.79e308。在1e9e15以上的精度降低
  • serde:使用Serde启用序列化和反序列化

用法

此库允许通过许多不同方法简单创建Decimal

use break_infinity::Decimal;

fn main() {
	let x = Decimal::new(123.4567);
	let y = Decimal::from_str("123456.7e-3").expect("Failed to parse Decimal");
}

返回Decimal的方法也可以链式使用

use break_infinity as bi;

fn main() {
	let short = ((x / &y + &z) * &Decimal::new(9.0)).floor();
	let long = x.ceil()
		.exp()
		.log10();
}

有关函数和方法的完整列表,请参阅文档

致谢

Patashu和Razenpok为创建原始的break_infinity.js,本库基于此。

依赖项

~180KB