🔢 chislo · числа прописью

chislo · числа прописью

Rust-библиотека для записи чисел, сумм и дат прописью на русском. Учитывает род числительных и формы существительных. Подходит для счетов, платёжных документов и голосовых сообщений.

crates.io docs.rs CI downloads MSRV MIT
▶ Попробовать вживую 📖 Документация API 🦀 rustdoc ★ GitHub
cargo add chislo no_std · WASM · словарь без аллокаций

Интерактивная песочница

Введите число, сумму или дату. Библиотека преобразует их прямо в браузере через WebAssembly.

Целые и десятичные числа с грамматическим родом и склонением существительного.

Количественное
Порядковое
Десятичное
С существительным
int_to_words_gender(n, gender);  ordinal(n, gender);  decimal_to_words(s);  decline(n, one, two, five);

Сумма прописью с правильным склонением валюты и копеек — для чеков, счетов и платёжек.

Прописью
money_from_str("1234.56", &RUB);

Целые и дробные проценты с верным согласованием слова «процент».

Прописью
percent(42);  percent_decimal("42.25");

Простые и смешанные дроби. Оставьте целую часть равной нулю для простой дроби.

Прописью
fraction(1, 2);  mixed_fraction(3, 2, 5);

Длительность из часов-минут-секунд или из общего числа секунд.

Из ч:м:с
Из секунд
duration_hms(1, 30, 0);  duration_from_secs(3_661);

Дата, год и время прописью — для договоров и документов.

Дата
Год
Время
date_to_words(2026, 4, 10);  year_to_words(2026);  time_to_words(14, 30);

Загрузка WebAssembly…

Почему chislo

Количественные и порядковые числительные, суммы, проценты, дроби, длительность и даты.

⚖️

Род и формы существительных

Три рода (один / одна / одно), выбор формы существительного по числу и правильное согласование десятичных (одна целая, а не один целых).

🧾

Создано для документов

Форматирование сумм, процентов, длительности, дат, времени и дробей для документов.

💱

11 валют

RUB, USD, EUR, GBP, CNY, JPY, KZT, BYN, UAH, CHF, AED из коробки, плюс поиск по ISO 4217 и свои валюты.

Словарь без аллокаций

Все данные живут в const; обёртки Display пишут прямо в write! без лишней String.

🪶

no_std и WebAssembly

no_std с alloc, опциональный rust_decimal и WASM-биндинги через wasm-bindgen.

🦀

Диапазон i64

Целые до квинтиллионов; словарь разрядов доходит до 10³⁹ (дуодециллионы).

Примеры на Rust

Добавьте крейт и начните преобразовывать числа.

use chislo::{int_to_words, decline, ordinal, money, percent, fraction, duration_hms, date_to_words, Gender, RUB};

int_to_words(42);                          // "сорок два"
decline(5, "рубль", "рубля", "рублей");   // "рублей"
ordinal(2026, Gender::Masculine);        // "две тысячи двадцать шестой"
money(1234, 56, &RUB);                  // "…тридцать четыре рубля пятьдесят шесть копеек"
percent(42);                          // "сорок два процента"
fraction(1, 2);                        // "одна вторая"
duration_hms(1, 30, 0);                // "один час тридцать минут"
date_to_words(2026, 4, 10);            // "десятое апреля две тысячи двадцать шестого года"