Crate currency [] [src]

A Currency is a combination of an optional character (Option<char>) and a big integer (BigInt`).

Common operations are overloaded to make numerical operations easy.

Perhaps the most useful part of this crate is the Currency::from_str function, which can convert international currency representations such as "$1,000.42" and "£10,99" into a usable Currency instance.


extern crate currency;

fn main() {
    use 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");


This crate cannot lookup conversion data dynamically. It does supply a convert function, but the conversion rates will need to be input by the user.

This crate also does not handle rounding or precision. Values are truncated during multiplication, division, and extra precision in a parse (such as gas prices).



Represents currency through an optional symbol and amount of coin.