public override void Format(StringBuilder b, double num)
 {
     if (num < 1.0 || num > 4999.0)
     {
         b.Append(num);
         return;
     }
     num = XslNumber.Round(num);
     for (int i = 0; i < XslNumber.XslNumberFormatter.RomanItem.decValues.Length; i++)
     {
         while ((double)XslNumber.XslNumberFormatter.RomanItem.decValues[i] <= num)
         {
             if (this.uc)
             {
                 b.Append(XslNumber.XslNumberFormatter.RomanItem.ucrDigits[i]);
             }
             else
             {
                 b.Append(XslNumber.XslNumberFormatter.RomanItem.lcrDigits[i]);
             }
             num -= (double)XslNumber.XslNumberFormatter.RomanItem.decValues[i];
         }
         if (num == 0.0)
         {
             break;
         }
     }
 }
                public override void Format(StringBuilder b, double num)
                {
                    if (num < 1 || num > 4999)
                    {
                        b.Append(num);
                        return;
                    }
                    num = XslNumber.Round(num);
                    for (int i = 0; i < decValues.Length; i++)
                    {
                        while (decValues [i] <= num)
                        {
                            if (uc)
                            {
                                b.Append(ucrDigits [i]);
                            }
                            else
                            {
                                b.Append(lcrDigits [i]);
                            }

                            num -= decValues [i];
                        }
                        if (num == 0)
                        {
                            break;
                        }
                    }
                }
 private static void alphaSeq(StringBuilder b, double n, char[] alphabet)
 {
     n = XslNumber.Round(n);
     if (n == 0.0)
     {
         return;
     }
     if (n > (double)alphabet.Length)
     {
         XslNumber.XslNumberFormatter.AlphaItem.alphaSeq(b, Math.Floor((n - 1.0) / (double)alphabet.Length), alphabet);
     }
     b.Append(alphabet[((int)n - 1) % alphabet.Length]);
 }
 static void alphaSeq(StringBuilder b, double n, char [] alphabet)
 {
     n = XslNumber.Round(n);
     if (n == 0)
     {
         return;
     }
     if (n > alphabet.Length)
     {
         alphaSeq(b, System.Math.Floor((n - 1) / alphabet.Length), alphabet);
     }
     b.Append(alphabet [((int)n - 1) % alphabet.Length]);
 }