// Token: 0x0600015E RID: 350 RVA: 0x000066F0 File Offset: 0x000048F0
 private static string GetUnitValue(long number, bool isOrdinal)
 {
     checked
     {
         if (!isOrdinal)
         {
             return(EnglishNumberToWordsConverter.UnitsMap[(int)((IntPtr)number)]);
         }
         string exceptionString;
         if (EnglishNumberToWordsConverter.ExceptionNumbersToWords(number, out exceptionString))
         {
             return(exceptionString);
         }
         return(EnglishNumberToWordsConverter.UnitsMap[(int)((IntPtr)number)] + "th");
     }
 }
        // 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);
        }