Склонение числительных
Онлайн-калькулятор склонения существительных при числительных по правилам русского языка: 1 яблоко, 2 яблока, 5 яблок, 21 яблоко, 111 яблок. Введите число и три формы слова — получите правильную пару.
Как считаем
Правило русского склонения: одна / несколько / много
В русском языке существительное после числительного принимает одну из трёх форм. Какая именно — решают последние две цифры числа, а не последняя. Правило одинаково работает для рублей, яблок, дней, километров и любых счётных существительных:
- Форма 1 (one) — если последняя цифра
1И последние две цифры не11. Примеры:1,21,31,101,121— «1 яблоко», «21 яблоко», «121 яблоко». - Форма 2–4 (few) — если последняя цифра
2, 3, 4И последние две цифры НЕ в диапазоне12–14. Примеры:2,3,4,22,23,24,102,103,104— «2 яблока», «22 яблока», «103 яблока». - Форма 5+ (many) — все остальные случаи:
0, 5–20, 25–30, 35…— «0 яблок», «5 яблок», «11 яблок», «25 яблок», «100 яблок».
Главная ловушка — числа 11, 12, 13, 14: они всегда идут с формой «много», несмотря на то что заканчиваются на 1, 2, 3, 4. Именно поэтому в формуле проверяются последние ДВЕ цифры: 111 яблок, 112 яблок, 113 яблок, 114 яблок — все «яблок», а не «яблоко/яблока».
Формула mod10/mod100 и её применение
Стандартный алгоритм (совпадает с реализацией i18n-библиотек — Intl.PluralRules, ICU, gettext-плюрал для русского):
mod10 = n % 10
mod100 = n % 100
if mod10 === 1 && mod100 !== 11: → one
elif 2 ≤ mod10 ≤ 4 && (mod100 < 12 || mod100 > 14): → few
else: → many
Применяется во всех крупных веб-фреймворках (Django trans, i18next, angular-translate). Тот же расчёт стоит внутри нашего счётчика символов для строк «21 символ», «22 символа», «25 символов» — но там три формы зашиты в код («символ/символа/символов»). Здесь формы приходят пользовательским вводом — это делает калькулятор универсальным: подставляйте любое существительное.
Знак числа не влияет на форму: -21 склоняется так же, как 21 — «яблоко». Дробные числа не поддерживаются: склонение работает только для целых («2 яблока» есть, «2,5 яблок» — нонсенс).
Особые случаи: рубли, дни, тысячи
Валюты — самый частый сценарий. Для рублей: «1 рубль», «2 рубля», «5 рублей». Для копеек: «1 копейка», «2 копейки», «5 копеек» (женский род — формы отличаются: если бы это были «доллары», формы были бы мужского рода). Для долларов: «1 доллар», «2 доллара», «5 долларов». Для евро — не склоняется вовсе: «1 евро», «2 евро», «5 евро». Норма закреплена в академических словарях. В договорах сумма дублируется цифрой и прописью — калькулятор суммы прописью сам поставит правильные формы «рубль/рубля/рублей».
Дни и часы: «1 день», «2 дня», «5 дней»; «1 час», «2 часа», «5 часов»; «1 минута», «2 минуты», «5 минут»; «1 секунда», «2 секунды», «5 секунд». Для расчёта разницы дат воспользуйтесь калькулятором дней между датами — там формулы уже встроены.
Некоторые слова имеют одну форму для всех числительных: «100 такси», «5 кофе», «10 евро», «20 пальто» — несклоняемые существительные иностранного происхождения. Для них можно ввести одинаковые значения во все три поля — калькулятор выдаст правильный результат независимо от числа.
Частые вопросы
Как правильно: 21 год или 21 лет?
21 год — существительное согласуется по последней цифре числа. Правило: если оканчивается на 1 (кроме 11) — единственное число именительного падежа: 1 год, 21 год, 101 год. Оканчивается на 2, 3, 4 (кроме 12–14) — родительный единственного: 22 года, 33 года. На 0, 5–9 и на 11–14 — родительный множественного: 5 лет, 11 лет, 25 лет, 100 лет. Слово «год» здесь меняется на «лет» — это отдельная лексическая замена.
Как склонять существительное с числами, оканчивающимися на 11–14?
Числа от 11 до 14 — всегда родительный падеж множественного числа, независимо от последней цифры. 11 рублей, 12 рублей, 13 рублей, 14 рублей — не «рубля» и не «рубль». Правило распространяется на любое число с этим окончанием: 111, 213, 1014, 2013 — все идут с формой множественного родительного. Это исключение из правила «по последней цифре»: 21 рубль, но 111 рублей. Если нужно записать сумму словами полностью, используйте сумма прописью.
Почему пишется «22 рубля», а не «22 рублей»?
22 оканчивается на 2, а числа с последней цифрой 2, 3, 4 (кроме 12–14) требуют родительного падежа единственного числа. Отсюда: 22 рубля, 23 рубля, 24 рубля, 33 рубля, 104 рубля. Форма «рублей» — это родительный множественного, который используется для чисел с последней цифрой 0, 5, 6, 7, 8, 9 и для 11–14: 5 рублей, 20 рублей, 25 рублей, 100 рублей. Правило работает для любого исчисляемого существительного: 22 яблока, 22 человека, 22 дня.
Как автоматизировать склонение в шаблонах письма клиенту?
В email-рассылках, SMS и уведомлениях подставляйте склонённую пару через функцию-плюрализатор: на вход число и три формы («день», «дня», «дней»), на выходе — правильный вариант. В Python это pymorphy3.MorphAnalyzer().parse() плюс метод make_agree_with_number(n). В JavaScript — библиотека plural-ru или самописная функция на 15 строк по правилу остатка от деления на 10 и 100. Онлайн-калькулятор выше как раз показывает эту логику вживую — можно скопировать нужную пару в текст письма.
В чём разница между «5 яблок» и «пять яблок» — цифрой или прописью?
Смысл одинаковый, различие стилистическое. По ГОСТ 7.89 и правилам русского делового письма цифрой пишут числа от 10 и больше, а также любые числа с единицами измерения: 5 кг, 3 %. Прописью — числа от 1 до 9 без единиц и в начале предложения: «Пять яблок лежали на столе», но «В корзине 15 яблок». В художественном тексте прописью пишут любые числа до сотни. В юридических документах суммы дублируют: цифрой + прописью — 15 000 ₽ (пятнадцать тысяч рублей). Для второго варианта пригодится сумма прописью.
Как склонять существительное после дробного числа — «1,5 часа» или «1,5 часов»?
После дробного числа существительное всегда стоит в родительном падеже единственного числа: 1,5 часа, 2,5 километра, 3,7 рубля, 10,5 процента. Не «часов» и не «часы». Правило действует независимо от целой части: и 0,5 часа, и 25,5 часа. Логика: слово согласуется с дробной частью, а «одна пятая», «две десятых» грамматически требуют родительного единственного. Исключение — целое число с половиной пишется через слово «с половиной»: 2 часа с половиной, тогда согласование идёт по числу 2. Оценить количество знаков в готовой фразе можно в счётчике символов.