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

            Число.Пропись(целая, валюта.ОсновнаяЕдиница, result);
            return(ДобавитьКопейки(дробная, валюта, result));
        }
Example #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));
        }
Example #3
0
        private static StringBuilder ДобавитьКопейки(uint дробная, Валюта валюта, StringBuilder result)
        {
            result.Append(' ');

            // Эта строчка выполняется быстрее, чем следующая за ней закомментированная.
            result.Append(дробная.ToString("00"));
            //result.AppendFormat ("{0:00}", дробная);

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

            return(result);
        }
Example #4
0
 /// <summary>
 /// Возвращает пропись заданной суммы строчными буквами.
 /// </summary>
 public static string Пропись(double n, Валюта валюта)
 {
     return(Число.ApplyCaps(Пропись(n, валюта, new StringBuilder()), Заглавные.Нет));
 }
Example #5
0
 /// <summary>
 /// Возвращает пропись заданной суммы.
 /// </summary>
 public static string Пропись(decimal n, Валюта валюта, Заглавные заглавные)
 {
     return(Число.ApplyCaps(Пропись(n, валюта, new StringBuilder()), заглавные));
 }