Ejemplo n.º 1
0
        /// <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)}");
            }
        }
Ejemplo n.º 2
0
    /// <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()}");
        }
    }