Created
May 3, 2018 13:02
-
-
Save KANekT/1e2953f8c75dd9a2994c64c1711d7157 to your computer and use it in GitHub Desktop.
Склонение числительных в C#
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class DeclensionGenerator | |
{ | |
/// <summary> | |
/// Возвращает слова в падеже, зависимом от заданного числа | |
/// </summary> | |
/// <param name="number">Число от которого зависит выбранное слово</param> | |
/// <param name="nominativ">Именительный падеж слова. Например "день"</param> | |
/// <param name="genetiv">Родительный падеж слова. Например "дня"</param> | |
/// <param name="plural">Множественное число слова. Например "дней"</param> | |
/// <returns></returns> | |
public static string Generate(int number, string nominativ, string genetiv, string plural) { | |
var titles = new[] {nominativ, genetiv, plural}; | |
var cases = new[] {2, 0, 1, 1, 1, 2}; | |
return titles[number % 100 > 4 && number % 100 < 20 ? 2 : cases[(number % 10 < 5) ? number % 10 : 5]]; | |
} | |
} |
Есть ли аналогичная функция для чисел с плавающей запятой?
Есть ли аналогичная функция для чисел с плавающей запятой?
Например? 2.5 яблока. 2.1 яблока. 2.4456 яблока. Зачем тут может потребоваться какое-то склонение?
1 яблоко, 1.5 яблока
1 яблоко, 1.5 яблока
Проверяешь если целое число - используешь способ выше, если float то используешь слово множественного числа
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
мне кажется нужно быть ученым что бы такое сделать