В этой статье
Что такое конвертация чисел в слова?
Конвертация чисел в слова преобразует цифровые значения в их записанную (прописную) форму. Например, 1234 становится «одна тысяча двести тридцать четыре» на русском. Эта конвертация необходима для юридических документов, финансовых инструментов и доступности — везде, где числа должны быть однозначными в текстовой форме.
Хотя концепция кажется простой, правила кардинально различаются в разных языках. Английский следует относительно последовательным правилам группировки, но такие языки, как французский, немецкий и многие славянские, имеют уникальную грамматику, согласование рода и правила словообразования, которые делают многоязычную конвертацию чисел удивительно сложной задачей.
Как работает конвертация чисел в слова
Базовый алгоритм для конвертации чисел в слова работает путём разбиения числа на группы по три цифры (единицы, тысячи, миллионы, миллиарды и т.д.) и независимой конвертации каждой группы перед их объединением с соответствующим словом масштаба.
- Сгруппируйте цифры — разделите число на блоки по три справа налево. Для 1 234 567: группы — это 1 (миллионы), 234 (тысячи), 567 (единицы)
- Конвертируйте каждую группу — каждая трёхзначная группа конвертируется независимо: сотни, затем десятки и единицы. «Пятьсот шестьдесят семь» для 567
- Добавьте слова масштаба — добавьте соответствующий масштаб: миллион, тысяча и т.д. Затем объедините: «один миллион двести тридцать четыре тысячи пятьсот шестьдесят семь»
Позиция десятков имеет особую обработку в английском, так как числа 11-19 имеют уникальные слова. В русском языке числа от 11 до 19 также имеют особые формы, а составные числа требуют согласования рода и падежа.
Попробуйте бесплатно — без регистрации
Конвертировать числа в слова →Правила для конкретных языков
Конвертация чисел в слова значительно различается в разных языках. То, что работает для английского, быстро перестаёт работать при применении к другим языкам.
- Английский — относительно простая группировка, необязательное использование «and» («one hundred and twenty-three» в британском английском vs «one hundred twenty-three» в американском)
- Французский — уникальные правила для 70 (soixante-dix = шестьдесят-десять), 80 (quatre-vingts = четыре-двадцатки) и 90 (quatre-vingt-dix = четыре-двадцать-десять). Бельгийский и швейцарский французский используют septante, huitante/octante, nonante
- Немецкий — составные слова читаются задом наперёд: 234 это «zweihundertvierunddreißig» (двести-четыре-и-тридцать). Всё число может стать одним составным словом
- Славянские языки — числа требуют грамматического согласования падежа с подсчитываемым существительным, и форма слова меняется в зависимости от того, равно ли число 1, 2-4 или 5+. Польский имеет самые сложные правила с несколькими моделями склонения
Распространённые случаи использования
Конвертация чисел в слова требуется во многих профессиональных и технических контекстах.
- Заполнение чеков — сумма должна быть записана словами для предотвращения подделки и мошенничества («Выплатить по приказу: одна тысяча двести рублей»)
- Юридические документы — контракты, судебные документы и юридические соглашения прописывают денежные суммы и количества для устранения двусмысленности
- Доступность и программы чтения с экрана — программам чтения нужна конвертация чисел в слова для естественного озвучивания дат, сумм и измерений
- Генерация счетов-фактур — профессиональные счета-фактуры часто включают общую сумму как в числовой, так и в прописной форме для ясности
- Финансовые отчёты — годовые отчёты и формальные финансовые документы могут требовать записи чисел словами в соответствии с правилами стиля (обычно числа меньше десяти записываются словами)
Обработка особых случаев
Помимо простых целых чисел, конвертация чисел в слова должна обрабатывать несколько особых случаев, добавляющих сложности.
- Десятичные дроби — обычно выражаются как целая часть «запятая» затем каждая цифра отдельно: 3,14 становится «три целых четырнадцать сотых». Для валюты: «три рубля четырнадцать копеек»
- Отрицательные числа — добавьте «отрицательное» или «минус» перед словесной формой: -42 становится «минус сорок два»
- Очень большие числа — слова масштаба продолжаются через триллион, квадриллион, квинтиллион и далее. Система хорошо определена для чисел до 10^63 (вигинтиллион) в короткой шкале, используемой англоязычными странами
- Порядковые числительные — конвертация в порядковую форму (первый, второй, третий, двадцать первый) следует другим правилам, чем количественные числительные, и различается в зависимости от языка
Часто задаваемые вопросы
Как работают порядковые числительные в разных языках?
Образование порядковых числительных сильно различается. Английский добавляет «-th» к большинству чисел (fourth, fifth) с нерегулярными формами (first, second, third). Французский использует суффикс «-ième» (deuxième, troisième) с «premier» для первого. Немецкий добавляет «-te» для 2-19 и «-ste» для 20+ (zweite, zwanzigste). Славянские языки склоняют порядковые числительные как прилагательные, с согласованием рода и падежа.
Как десятичные дроби выражаются словами в разных языках?
Английский использует «point» с отдельными цифрами (3.14 = «three point one four») или дробную форму («three and fourteen hundredths»). Многие европейские языки используют запятую как десятичный разделитель и говорят «запятая»: 3,14 = «trois virgule quatorze» во французском. Валютные суммы обычно выражаются иначе: «три евро четырнадцать центов».
Какое наибольшее число можно выразить словами?
Теоретически ограничений нет — всегда можно добавить ещё одно слово масштаба. На практике короткая шкала (используется в английском) имеет именованные числа до 10^63 (вигинтиллион) и далее, используя латинские конвенции именования. Длинная шкала (используется во многих европейских языках) называет числа иначе — биллион в длинной шкале это 10^12, а не 10^9. Большинство конвертеров поддерживают числа до как минимум 10^15 (квадриллион/биллиард).