Skip to content

strigido/num2en

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

num2en

This is a crate with functions for converting any integer or decimal number below 2128 (about 340 undecillion) to words.
It supports converting to cardinal and ordinal numbers.

Installation

cargo add num2en

Full documentation can be found on docs.rs/num2en.

Functions

To convert any integer n of type X to cardinal number words, call X_to_words(n).

use num2en::*;
assert_eq!(    u8_to_words(1),    "one");
assert_eq!(    i8_to_words(2),    "two");
assert_eq!(   u16_to_words(3),    "three");
assert_eq!(   i16_to_words(4),    "four");
assert_eq!(   u32_to_words(5),    "five");
assert_eq!(   i32_to_words(6),    "six");
assert_eq!(   u64_to_words(70),   "seventy");
assert_eq!(   i64_to_words(71),   "seventy-one");
assert_eq!(  u128_to_words(180),  "one hundred eighty");
assert_eq!(  i128_to_words(211),  "two hundred eleven");
assert_eq!( usize_to_words(1050), "one thousand fifty");
assert_eq!( isize_to_words(2012), "two thousand twelve");

To convert any unsigned integer n of type X to ordinal number words, call X_to_ord_words(n).

assert_eq!(    u8_to_ord_words(1),    "first");
assert_eq!(   u16_to_ord_words(3),    "third");
assert_eq!(   u32_to_ord_words(5),    "fifth");
assert_eq!(   u64_to_ord_words(70),   "seventieth");
assert_eq!(  u128_to_ord_words(180),  "one hundred eightieth");
assert_eq!( usize_to_ord_words(2012), "two thousand twelfth");

To convert any float f of type Y to number words, call Y_to_words(f).

assert_eq!(  f32_to_words(15.2),  Ok("fifteen point two".to_string()));
assert_eq!(  f64_to_words(42.42), Ok("forty-two point four two".to_string()));

To convert a string representation of a number to number words, call str_to_words.

assert_eq!( str_to_words("123.456"), Ok("one hundred twenty-three point four five six".to_string()) );

To spell all digits in a string of digits individually, call str_digits_to_words.

assert_eq!( str_digits_to_words("001247"), Ok("zero zero one two four seven".to_string()) );

This crate has been thoroughly tested, but if you find any function working incorrectly for some input, please open an issue on Github.

About

Rust crate for converting integer and decimal numbers into English cardinal or ordinal number words

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages