private string convertRoman(int num) { var ans = ""; var k = (int)Math.Floor(Convert.ToDecimal(num / 1000)); var h = (int)Math.Floor(Convert.ToDecimal((num % 1000) / 100)); var t = (int)Math.Floor(Convert.ToDecimal((num % 100) / 10)); var o = num % 10; var one = new[] { "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX" }; var ten = new[] { "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC" }; var hundred = new[] { "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM" }; var thousand = "M"; for (var i = 0; i < k; i++) { ans += thousand; } if (h > 0) ans += hundred[h - 1]; if (t > 0) ans += ten[t - 1]; if (o > 0) ans += one[o - 1]; return ans; }