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
 private static StringBuilder ДобавитьКопейки(uint дробная, Валюта валюта, StringBuilder result)
 {
     result.Append(' ');
     // Эта строчка выполняется быстрее, чем следующая за ней закомментированная.
     result.Append(дробная.ToString("00"));
     //result.AppendFormat ("{0:00}", дробная);
     result.Append(' ');
     result.Append(Число.Согласовать(валюта.ДробнаяЕдиница, дробная));
     return(result);
 }
Exemplo n.º 3
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.º 4
0
 /// <summary>
 /// Возвращает пропись заданной суммы.
 /// </summary>
 public static string Пропись(double n, Валюта валюта, Заглавные заглавные)
 {
     return(Число.ApplyCaps(Пропись(n, валюта, new StringBuilder()), заглавные));
 }
Exemplo n.º 5
0
 /// <summary>
 /// Возвращает пропись заданной суммы строчными буквами.
 /// </summary>
 public static string Пропись(decimal n, Валюта валюта)
 {
     return(Число.ApplyCaps(Пропись(n, валюта, new StringBuilder()), Заглавные.Нет));
 }