This is a robust library that converts a number (or, more specifically, an integer) to words. It is written completely in Rust and does not require any third-party dependencies. It allows the entering of custom place value words (e.g., "thousand", "million", etc.) to extend the algorithm to numbers of arbitrary length, and it accepts the number as a string input instead of as a Rust integer to enable the conversion of arbitrarily large numbers.
There is only one public function, number_to_words
, which accepts two parameters: the integer as a string and an array slice of strings representing the place values ("thousand", "million", etc.). If the place values are not provided, the default ones are used, which go up to a decillion (far beyond the maximum size of a u64). The function returns an Option<String>
with the converted number as a string.
- Text to speech applications
- Financial applications (words often have to be used in financial documents with or in place of digits)
- Education applications
- More things I can't think of right now
number_to_words("0", None).unwrap()
=>"zero"
number_to_words("12", None).unwrap()
=>"twelve"
number_to_words("1993", None).unwrap()
=>"one thousand nine hundred ninety-three"
number_to_words("-2234444", None).unwrap()
=>"negative two million two hundred thirty-four thousand four hundred forty-four"
This library is very powerful, but there are a few things to be aware of.
- The library does not handle decimals. It only converts integers. No extra characters within the number are allowed (besides an optional negative sign
-
at the start). - The library is based on the English system of number groupings (groups of three digits), so it may not work as expected with other numbering systems.
- lib.rs is the library
- main.rs is just an interactive converter using the library
- Clone the repository
- Make sure you have cargo (install rust)
- Run the following command in the terminal while in the cloned directory
cargo run
- Enter
quit
to exit the program