Convert numbers like 42
to forty-two
This crate can be either used as a library or a binary.
Example usage:
use num2words::Num2Words;
assert_eq!(Num2Words::new(42).to_words(), Ok(String::from("forty-two")));
The builder Num2Words
can take any of these methods: lang
, cardinal
,
ordinal
, ordinal_num
, year
, and currency
.
use num2words::*;
assert_eq!(
Num2Words::new(42).lang(Lang::English).to_words(),
Ok(String::from("forty-two"))
);
assert_eq!(
Num2Words::new(42).ordinal().to_words(),
Ok(String::from("forty-second"))
);
assert_eq!(
Num2Words::new(42.01).currency(Currency::DOLLAR).to_words(),
Ok(String::from("forty-two dollars and one cent"))
);
These arguments can be chained.
For more information about the available languages, outputs types and currencies, see Information.
This crate provides a command-line interface to run requests on num2words
.
Example:
$ num2words 42
forty-two
$ num2words 10 --to EUR
ten euros
You can download the app via the following command:
$ cargo install num2words
You can also change the language via the CLI argument --lang [ISO 639-1 code]
and provide a specific output type or a currency with the argument
--to [cardinal|ordinal|ordinal_num|year|ISO 4217]
.
For more information about the usage of num2words
please refer to the docs
or via the following command:
$ num2words --help
Here is a list of all of the supported languages:
Flag | Code | ISO 639-1 | Language | 42 |
---|---|---|---|---|
🇺🇸🇬🇧 | Lang::English |
en |
English | forty-two |
This list can be expanded! Contributions are welcomed.
Here is a list of all of the supported outputs types (with the associated command-line interface code):
Library method | CLI argument | Example output |
---|---|---|
.cardinal() |
cardinal |
forty-two (42) |
.ordinal() |
ordinal |
forty-second (42) |
.ordinal_num() |
ordinal_num |
42nd (42) |
.year() |
year |
nineteen oh-one (1901) |
.currency(cur) |
ISO 4217 code | forty-two dollars and one cent (42.01) |
Three-letter enum variants corresponds to the currency's ISO 4217 code, but
there are exceptions to accomodate generic terminologies: DINAR
, DOLLAR
,
PESO
and RIYAL
.
A summary of all of the supported currencies are available in the documentation
of Currency
.
This library is widely inspired by Savoir-faire Linux's Python lib.
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.