/// <summary> /// ########## ####### ##### # ######## ###### # <paramref name="result"/> ######### #######. /// </summary> public static StringBuilder Пропись(decimal сумма, Валюта валюта, StringBuilder result) { decimal целая = Math.Floor(сумма); uint дробная = (uint)((сумма - целая) * 100); Число.Пропись(целая, валюта.ОсновнаяЕдиница, result); return(ДобавитьКопейки(дробная, валюта, result)); }
/// <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)); }
public static StringBuilder ПрописьБезКопеек(decimal сумма, Валюта валюта, StringBuilder result) { decimal целая = Math.Floor(сумма); uint дробная = (uint)((сумма - целая) * 100); Число.Пропись(целая, валюта.ОсновнаяЕдиница, result); result.Append(Число.Согласовать(валюта.ДробнаяЕдиница, дробная)); return(result); }
private static StringBuilder ДобавитьКопейки(uint дробная, Валюта валюта, StringBuilder result) { result.Append(' '); // ### ####### ########### #######, ### ######### ## ### ##################. result.Append(дробная.ToString("00")); //result.AppendFormat ("{0:00}", #######); result.Append(' '); result.Append(Число.Согласовать(валюта.ДробнаяЕдиница, дробная)); return(result); }
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(); } }
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()); }
/// <summary> /// ########## ####### ######## #####. /// </summary> public static string Пропись(double n, Валюта валюта, Заглавные заглавные) { return(Число.ApplyCaps(Пропись(n, валюта, new StringBuilder()), заглавные)); }
/// <summary> /// ########## ####### ######## ##### ######### #######. /// </summary> public static string Пропись(decimal n, Валюта валюта) { return(Число.ApplyCaps(Пропись(n, валюта, new StringBuilder()), Заглавные.Нет)); }