#numbers #textual #precision #fractional #representation #arbitrary-precision #digits

base79

对任意精度基79分数的文本表示和实用函数

1 个不稳定版本

0.1.0 2021年8月12日

#1804编码

MIT 许可证

11KB
202

base79

此库提供任意精度基79分数的文本表示,不包含前导零或小数点。给定任意两个基79数字,此库还可以给出中点。这可以用于实时协作应用以及在用户可以任意排序记录的应用程序中。

这是github.com/seungha-kim/base79的分支,但简化到79位,以避免处理可打印ASCII范围的末尾的一些尴尬字符。

文档

示例

use base79::Base79;
use std::str::FromStr;

fn main() {
    use base79::Base79;
    use std::str::FromStr;

    let n1 = Base79::mid();
    assert_eq!(n1.to_string(), "R");
    assert_eq!(n1.raw_digits(), vec![39]);

    let n2 = Base79::avg_with_zero(&n1);
    assert_eq!(n2.to_string(), ">");
    assert_eq!(n2.raw_digits(), vec![19]);

    let n3 = Base79::avg_with_one(&n1);
    assert_eq!(n3.to_string(), "f");

    let n4 = Base79::avg(&n1, &n2);
    assert_eq!(n4.to_string(), "H");

    let n5 = Base79::from_str("s?Q^Z").unwrap();
    assert_eq!(n5.raw_digits(), vec![72, 20, 38, 51, 47]);
}

无运行时依赖