// Token: 0x0600015D RID: 349 RVA: 0x00006414 File Offset: 0x00004614 private string Convert(long number, bool isOrdinal) { if (number == 0L) { return(EnglishNumberToWordsConverter.GetUnitValue(0L, isOrdinal)); } if (number < 0L) { return(string.Format("minus {0}", new object[] { this.Convert(-number) })); } List <string> parts = new List <string>(); if (number / 1000000000000000000L > 0L) { parts.Add(string.Format("{0} quintillion", new object[] { this.Convert(number / 1000000000000000000L) })); number %= 1000000000000000000L; } if (number / 1000000000000000L > 0L) { parts.Add(string.Format("{0} quadrillion", new object[] { this.Convert(number / 1000000000000000L) })); number %= 1000000000000000L; } if (number / 1000000000000L > 0L) { parts.Add(string.Format("{0} trillion", new object[] { this.Convert(number / 1000000000000L) })); number %= 1000000000000L; } if (number / 1000000000L > 0L) { parts.Add(string.Format("{0} billion", new object[] { this.Convert(number / 1000000000L) })); number %= 1000000000L; } if (number / 1000000L > 0L) { parts.Add(string.Format("{0} million", new object[] { this.Convert(number / 1000000L) })); number %= 1000000L; } if (number / 1000L > 0L) { parts.Add(string.Format("{0} thousand", new object[] { this.Convert(number / 1000L) })); number %= 1000L; } if (number / 100L > 0L) { parts.Add(string.Format("{0} hundred", new object[] { this.Convert(number / 100L) })); number %= 100L; } if (number > 0L) { if (parts.Count != 0) { parts.Add("and"); } if (number < 20L) { parts.Add(EnglishNumberToWordsConverter.GetUnitValue(number, isOrdinal)); } else { string lastPart = EnglishNumberToWordsConverter.TensMap[(int)(checked ((IntPtr)(number / 10L)))]; if (number % 10L > 0L) { lastPart += string.Format("-{0}", new object[] { EnglishNumberToWordsConverter.GetUnitValue(number % 10L, isOrdinal) }); } else if (isOrdinal) { lastPart = lastPart.TrimEnd(new char[] { 'y' }) + "ieth"; } parts.Add(lastPart); } } else if (isOrdinal) { List <string> list = parts; int index = parts.Count - 1; list[index] += "th"; } string toWords = string.Join(" ", parts.ToArray()); if (isOrdinal) { toWords = EnglishNumberToWordsConverter.RemoveOnePrefix(toWords); } return(toWords); }