using System;
public static class Int32Extentions
{
public static string ToRoman(this 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();
}
}