2 个不稳定版本

0.6.0 2022年12月18日
0.5.0 2021年12月28日

152财务 中排名

Download history 143/week @ 2024-03-14 116/week @ 2024-03-21 159/week @ 2024-03-28 130/week @ 2024-04-04 122/week @ 2024-04-11 176/week @ 2024-04-18 161/week @ 2024-04-25 129/week @ 2024-05-02 141/week @ 2024-05-09 138/week @ 2024-05-16 169/week @ 2024-05-23 153/week @ 2024-05-30 139/week @ 2024-06-06 172/week @ 2024-06-13 175/week @ 2024-06-20 98/week @ 2024-06-27

604 每月下载量
qsv 中使用

MIT 许可证

46KB
1K SLoC

Rust货币库

一个非常小的库,提供在Rust中表示货币的方法。

这是一个https://github.com/Tahler/currency-rs的分支,它拉取了货币字符串的待处理PR(例如 "USD, EUR, etc." - 不仅限于单个字符符号 - "$, €, etc.")和serde支持。

它还将num依赖项从0.1.32升级到0.4.0。

这个分支主要是为了qsv CSV数据处理工具包而创建的。


lib.rs:

Currency 是一个可选字符(Option<char>``)和一个大整数(BigInt)的组合。

常见的操作被重载,以便于进行数值操作。

这个crate最有用的部分可能是Currency::from_str函数,它可以转换国际货币表示形式,如"$1,000.42"和"£10,99",为可用的Currency实例。

示例

extern crate qsv_currency;

fn main() {
    use qsv_currency::Currency;

    let sock_price = Currency::from_str("$11.99").unwrap();
    let toothbrush_price = Currency::from_str("$1.99").unwrap();
    let subtotal = sock_price + toothbrush_price;
    let tax_rate = 0.07;
    let total = &subtotal + (&subtotal * tax_rate);
    assert_eq!(format!("{}", total), "$14.95");
}

局限性

这个crate不能动态查找转换数据。它提供了一个convert函数,但转换率需要用户输入。

此crate也不处理舍入或精度。在乘法、除法以及在解析(如油价)中添加的额外精度时,值会被截断。

依赖项

~0.5–0.8MB
~17K SLoC