Перетворення числа в текстовий запис прописом ("1234" → "одна тисяча двісті тридцять чотири") здається простою задачею форматування, поки не почнеш враховувати відмінки, рід і специфічні правила мови.
Навіщо взагалі потрібен запис прописом
У юридичних і фінансових документах (чеках, договорах, рахунках-фактурах) сума традиційно дублюється прописом поруч із цифрами саме для запобігання підробкам: цифри значно легше непомітно змінити (дописавши нуль чи змінивши одну цифру), ніж текстовий запис.
Чому алгоритм складніший, ніж здається
В українській мові, як і в багатьох інших, числівники узгоджуються за родом із іменником, що позначається ("одна гривня", але "один долар"), а форма слова після числа залежить від останньої цифри й певних винятків ("21 гривня", але "22 гривні", і "11 гривень" — виняток).
Великі числа й розрядні групи
Числа зазвичай розбивають на групи по три розряди (тисячі, мільйони, мільярди), і кожна група обробляється за схожими правилами, але зі своїм словом-суфіксом ("тисяча/тисячі/тисяч", "мільйон/мільйони/мільйонів") — це узгодження також залежить від останньої цифри групи.
Навіщо це потрібно
- Автоматично генерувати суму прописом для рахунків, договорів чи чеків.
- Перевірити правильність узгодження відмінків при написанні власного конвертера.
- Швидко отримати текстовий запис числа без ручного набору.
"Мільярд" в одній мові — не завжди "billion" в іншій
Англійська мова сьогодні використовує "коротку шкалу" (short scale), де billion = 10⁹, що збігається з українським "мільярд" — але так було не завжди, і деякі мови досі використовують "довгу шкалу" (long scale), де свій термін для 10⁹ (наприклад, "milliard") відрізняється від терміна для 10¹². Ця історична розбіжність — поширене джерело помилок при перекладі великих сум між мовами.