MGBrown.com Hunk

MGBlog

Wednesday, 05 August 2009

Wed, 05 Aug 2009 - 11:30am (GMT+1)
Comments

C# Function for converting an Int to Roman numerals

public static string ToRoman(int number)
{
    if (-9999 >= number || number >= 9999)
    {
        throw new ArgumentOutOfRangeException("number");
    }

    if (number == 0)
    {
        return "NUL";
    }

    StringBuilder sb = new StringBuilder(10);

    if (number < 0)
    {
        sb.Append('-');
        number *= -1;
    }

    string[,] table = new string[,] { 
        { "", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX" }, 
        { "", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC" }, 
        { "", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM" },
        { "", "M", "MM", "MMM", "M(V)", "(V)", "(V)M", 
                                          "(V)MM", "(V)MMM", "M(X)" } 
    };

    for (int i = 1000, j = 3; i > 0; i /= 10, j--)
    {
        int digit = number / i;
        sb.Append(table[j, digit]);
        number -= digit * i;
    }

    return sb.ToString();
}

Comments

No Comments yet, why not add one of your own.

Add Your Comment

Your Name:
Harry Potter
Your homepage URL (optional):  
http://www.mgbrown.com
Title:*
Comment:*
Copy code into box:
 
* HTML tags not supported