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

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

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

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

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