private static string IntegralInWords(long val, UnitInfo info) { var r = new StringBuilder(); if (val == 0) { r.Append("ноль "); } if (val % 1000 != 0) { r.Append(RusNumber.Str(val, info.Gender, string.Empty, string.Empty, string.Empty)); } val /= 1000; r.Insert(0, RusNumber.Str(val, NounGender.Feminine, "тысяча", "тысячи", "тысяч")); val /= 1000; r.Insert(0, RusNumber.Str(val, NounGender.Masculine, "миллион", "миллиона", "миллионов")); val /= 1000; r.Insert(0, RusNumber.Str(val, NounGender.Masculine, "миллиард", "миллиарда", "миллиардов")); val /= 1000; r.Insert(0, RusNumber.Str(val, NounGender.Masculine, "триллион", "триллиона", "триллионов")); val /= 1000; r.Insert(0, RusNumber.Str(val, NounGender.Masculine, "триллиард", "триллиарда", "триллиардов")); r[0] = char.ToUpper(r[0]); return(r.ToString().Trim()); }
internal AmountInWords FractalUnitName() { if (_currencyInfo.Precision > 0) { _result.Add(RusNumber.Case(_fractalPart, _currencyInfo.MinorOne, _currencyInfo.MinorTwo, _currencyInfo.MinorFive)); } return(this); }
internal AmountInWords IntegralUnitName() { _result.Add(RusNumber.Case(_integralPart, _currencyInfo.MajorOne, _currencyInfo.MajorTwo, _currencyInfo.MajorFive)); return(this); }