Пример #1
0
        public static string Str(double val, bool male)
        {
            bool minus = false;

            if (val < 0)
            {
                val = -val; minus = true;
            }
            int           n         = (int)val;
            int           remainder = (int)((val - n + 0.005) * 100);
            StringBuilder r         = new StringBuilder();

            if (n == 0)
            {
                return("ноль");
            }
            if (n % 1000 != 0)
            {
                r.Append(RusNumber.Str(n, male, "", "", ""));
            }
            n /= 1000;
            int nCur = n % 1000;    // значение в исследуемом разряде

            if (nCur > 0 && nCur < 1000)
            {
                r.Insert(0, RusNumber.Str(nCur, false, "тысяча", "тысячи", "тысяч"));
            }
            n   /= 1000;
            nCur = n % 1000;
            if (nCur > 0 && nCur < 1000)
            {
                r.Insert(0, RusNumber.Str(nCur, true, "миллион", "миллиона", "миллионов"));
            }
            n   /= 1000;
            nCur = n % 1000;
            if (nCur > 0 && nCur < 1000)
            {
                r.Insert(0, RusNumber.Str(nCur, true, "миллиард", "миллиарда", "миллиардов"));
            }
            n   /= 1000;
            nCur = n % 1000;
            if (nCur > 0 && nCur < 1000)
            {
                r.Insert(0, RusNumber.Str(nCur, true, "триллион", "триллиона", "триллионов"));
            }
            n   /= 1000;
            nCur = n % 1000;
            if (nCur > 0 && nCur < 1000)
            {
                r.Insert(0, RusNumber.Str(nCur, true, "квадриллион", "квадриллиона", "квадриллионов"));
            }
            if (minus)
            {
                r.Insert(0, "минус ");
            }
            return(r.ToString());
        }
Пример #2
0
        public static string Str(double val, bool male,
                                 string seniorOne, string seniorTwo, string seniorFive,
                                 string juniorOne, string juniorTwo, string juniorFive)
        {
            bool minus = false;

            if (val < 0)
            {
                val = -val; minus = true;
            }
            int           n         = (int)val;
            int           remainder = (int)((val - n + 0.005) * 100);
            StringBuilder r         = new StringBuilder();

            if (0 == n)
            {
                r.Append("0 ");
            }
            if (n % 1000 != 0)
            {
                r.Append(RusNumber.Str(n, male, seniorOne, seniorTwo, seniorFive));
            }
            else
            {
                r.Append(seniorFive);
            }
            n /= 1000;
            r.Insert(0, RusNumber.Str(n, false, "тысяча", "тысячи", "тысяч"));
            n /= 1000;
            r.Insert(0, RusNumber.Str(n, true, "миллион", "миллиона", "миллионов"));
            n /= 1000;
            r.Insert(0, RusNumber.Str(n, true, "миллиард", "миллиарда", "миллиардов"));
            n /= 1000;
            r.Insert(0, RusNumber.Str(n, true, "триллион", "триллиона", "триллионов"));
            n /= 1000;
            r.Insert(0, RusNumber.Str(n, true, "триллиард", "триллиарда", "триллиардов"));
            if (minus)
            {
                r.Insert(0, "минус ");
            }
            r.Append(remainder.ToString("00 "));
            r.Append(RusNumber.Case(remainder, juniorOne, juniorTwo, juniorFive));
            r[0] = char.ToUpper(r[0]);
            return(r.ToString());
        }