2 个不稳定版本
0.6.0 | 2022年12月18日 |
---|---|
0.5.0 | 2021年12月28日 |
152 在 财务 中排名
604 每月下载量
在 qsv 中使用
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