/// <summary> /// Метод, який перевіряє коректність вводу українського числа користувачем та викликає метод для пропису цього числа /// </summary> public static void CheckUkrainianNumbers() { Console.WriteLine("Введіть число в форматі xxxxxx,xx! Число не повинне бути більшим за 2147483647,00"); string str = Convert.ToString(Console.ReadLine()); while (!double.TryParse(str, out _) || str[str.Length - 3] != ',' || double.Parse(str) > 2147483647.00 || double.Parse(str) < 0) { Console.Clear(); Console.WriteLine("Невірно введене число! \n Введіть число в форматі xxxxxx,xx! Число не повинне бути більшим за 2147483647,00"); str = Convert.ToString(Console.ReadLine()); } Console.Clear(); Console.WriteLine($"Ви ввели число: {double.Parse(str)}"); string strCurrency = ""; string strCoins = ""; for (int i = 0; i < str.Length; i++) { if (i < str.Length - 3) { strCurrency += str[i]; } else if (i > str.Length - 3) { strCoins += str[i]; } } int currency = Int32.Parse(strCurrency); int coins = Int32.Parse(strCoins); if (coins == 0) { Console.WriteLine($"{UahParse.Str(currency)}{UahParse.Currency(currency)}"); } else if (currency == 0) { Console.WriteLine($"{UahParse.Str(coins).ToLower()}{UahParse.Coins(coins)}"); } else { Console.WriteLine($"{UahParse.Str(currency)}{UahParse.Currency(currency)} {UahParse.Str(coins).ToLower()}{UahParse.Coins(coins)}"); } }
/// <summary> /// Перевід цілого числа в рядок /// </summary> /// <param name="val">Число</param> /// <returns>Повертає стрінг числа</returns> public static string Str(int val) { int n = val; StringBuilder r = new StringBuilder(); if (0 == n) { r.Append("0 "); } if (n % 1000 != 0) { r.Append(UahParse.Str(n, true, "", "", "")); } n /= 1000; r.Insert(0, UahParse.Str(n, false, " тисяча", " тисячі", " тисяч")); n /= 1000; r.Insert(0, UahParse.Str(n, false, " мілйон", " мілйонів", " мілйонів")); n /= 1000; r.Insert(0, UahParse.Str(n, true, " міліард", " міліарди", " міліардів")); n /= 1000; r[0] = char.ToUpper(r[0]); //робимо першу букву великою if (val % 10 == 1) { return($"{r.ToString()}"); } else if (val % 10 > 1 && val % 10 < 5) { return($"{r.ToString()}"); } else { return($"{r.ToString()}"); } }