Exemplo n.º 1
0
        /// <summary>
        /// ########## ####### ##### # ######## ###### # <paramref name="result"/> ######### #######.
        /// </summary>
        public static StringBuilder Пропись(decimal сумма, Валюта валюта, StringBuilder result)
        {
            decimal целая   = Math.Floor(сумма);
            uint    дробная = (uint)((сумма - целая) * 100);

            Число.Пропись(целая, валюта.ОсновнаяЕдиница, result);
            return(ДобавитьКопейки(дробная, валюта, result));
        }
Exemplo n.º 2
0
        /// <summary>
        /// ########## ####### ##### # ######## ###### # <paramref name="result"/> ######### #######.
        /// </summary>
        public static StringBuilder Пропись(double сумма, Валюта валюта, StringBuilder result)
        {
            double целая = Math.Floor(сумма);

            // ######### 100 ## ###### ######### ######## ###### ##########
            // ########, ##### ##### = 1234.51.
            uint дробная = (uint)(сумма * 100) - (uint)(целая * 100);

            Число.Пропись(целая, валюта.ОсновнаяЕдиница, result);
            return(ДобавитьКопейки(дробная, валюта, result));
        }
Exemplo n.º 3
0
        public static StringBuilder ПрописьБезКопеек(decimal сумма, Валюта валюта, StringBuilder result)
        {
            decimal целая   = Math.Floor(сумма);
            uint    дробная = (uint)((сумма - целая) * 100);

            Число.Пропись(целая, валюта.ОсновнаяЕдиница, result);

            result.Append(Число.Согласовать(валюта.ДробнаяЕдиница, дробная));

            return(result);
        }
Exemplo n.º 4
0
        private static StringBuilder ДобавитьКопейки(uint дробная, Валюта валюта, StringBuilder result)
        {
            result.Append(' ');

            // ### ####### ########### #######, ### ######### ## ### ##################.
            result.Append(дробная.ToString("00"));
            //result.AppendFormat ("{0:00}", #######);

            result.Append(' ');
            result.Append(Число.Согласовать(валюта.ДробнаяЕдиница, дробная));

            return(result);
        }
Exemplo n.º 5
0
        public static void ConvertIntNumberColumnsToWords(this Entity entity,
                                                          IEnumerable <string> numberColumnNames,
                                                          Валюта currency,
                                                          Func <string, string> getStringColumnName)
        {
            var sb = new StringBuilder();

            foreach (var numberColumnName in numberColumnNames)
            {
                double amount = entity.GetTypedColumnValue <double>(numberColumnName);
                Число.Пропись(amount, currency.ОсновнаяЕдиница, sb);
                string stringColumnName = getStringColumnName(numberColumnName);
                entity.SetColumnValue(stringColumnName, sb.ToString());
                sb.Clear();
            }
        }
Exemplo n.º 6
0
        public static void ConstractDblValueString(double amount, ref StringBuilder sb)
        {
            Валюта currency;

            uint IntVal = (uint)amount;

            amount = System.Math.Round(amount % 1, 4);
            int rank = 0;

            for (; rank > -4; rank--)
            {
                if (amount % 1 == 0)
                {
                    break;
                }
                amount *= 10;
            }
            uint DblVal = (uint)amount;

            string IntAddString = "";

            if (IntVal % 10 == 1)
            {
                IntAddString = "целая";
                currency     = Валюта.ЧислоЖ;
            }
            else
            {
                IntAddString = "целых";
                currency     = Валюта.ЧислоМ;
            }

            var sbInt = new StringBuilder();

            Число.Пропись(IntVal, currency.ОсновнаяЕдиница, sbInt);

            var sbDbl = new StringBuilder();

            if (rank < 0)
            {
                sbInt.Append(" ");
                sbInt.Append(IntAddString);

                string DblAddString = realNames[0 - rank];
                if (DblVal % 10 == 1)
                {
                    DblAddString += "ая";
                    currency      = Валюта.ЧислоЖ;
                }
                else
                {
                    DblAddString += "ых";
                    currency      = Валюта.ЧислоМ;
                }

                Число.Пропись(DblVal, currency.ОсновнаяЕдиница, sbDbl);
                sbDbl.Append(" ");
                sbDbl.Append(DblAddString);
            }

            sb.Append(sbInt.ToString());
            sb.Append(" ");
            sb.Append(sbDbl.ToString());
        }
Exemplo n.º 7
0
 /// <summary>
 /// ########## ####### ######## #####.
 /// </summary>
 public static string Пропись(double n, Валюта валюта, Заглавные заглавные)
 {
     return(Число.ApplyCaps(Пропись(n, валюта, new StringBuilder()), заглавные));
 }
Exemplo n.º 8
0
 /// <summary>
 /// ########## ####### ######## ##### ######### #######.
 /// </summary>
 public static string Пропись(decimal n, Валюта валюта)
 {
     return(Число.ApplyCaps(Пропись(n, валюта, new StringBuilder()), Заглавные.Нет));
 }