Crates.io | russian_numbers |
lib.rs | russian_numbers |
version | 0.2.0 |
source | src |
created_at | 2022-12-08 22:14:59.008605 |
updated_at | 2023-01-17 12:57:42.58797 |
description | crate for converting numbers into names in Russian language |
homepage | |
repository | https://github.com/simensgreen/russian_numbers |
max_upload_size | |
id | 732855 |
size | 17,988 |
crate for converting numbers into names in Russian language up to 10e96
u128::MAX < 10e96
use russian_numbers::NumeralName;
assert_eq!(123_321usize.numeral_name(), &["сто", "двадцать", "три", "тысячи", "триста", "двадцать", "один"]);
assert_eq!(100_000usize.numeral_name(), &["сто", "тысяч"]);
assert_eq!(101_000usize.numeral_name(), &["сто", "одна", "тысяча"]);
assert_eq!(102_000usize.numeral_name(), &["сто", "две", "тысячи"]);
assert_eq!(101_000_000usize.numeral_name(), &["сто", "один", "миллион"]);
assert_eq!(102_000_000usize.numeral_name(), &["сто", "два", "миллиона"]);
assert_eq!(102_102_000usize.numeral_name(), &["сто", "два", "миллиона", "сто", "две", "тысячи"]);
assert_eq!(u128::MAX.numeral_name(), &["триста", "сорок", "анцедиллионов", "двести", "восемьдесят", "два", "дециллиона", "триста", "шестьдесят", "шесть", "нониллионов", "девятьсот", "двадцать", "октиллионов", "девятьсот", "тридцать", "восемь", "септиллионов", "четыреста", "шестьдесят", "три", "секстиллиона", "четыреста", "шестьдесят", "три", "квинтиллиона", "триста", "семьдесят", "четыре", "квадриллиона", "шестьсот", "семь", "триллионов", "четыреста", "тридцать", "один", "миллиард", "семьсот", "шестьдесят", "восемь", "миллионов", "двести", "одиннадцать", "тысяч", "четыреста", "пятьдесят", "пять"]);
If you need to split triplets, use triplet iterators separately:
use russian_numbers::{Numerals, RevDigits};
let x = 120_210usize;
assert_eq!(Numerals::from(x.into_triplets()).collect::<Vec<_>>(), vec![vec!["двести", "десять"], vec!["сто", "двадцать", "тысяч"]])