[Turn off line numbering]1: arg num; 2: var str, neg, methstr; 3: 4: str = ""; 5: neg = ""; 6: 7: // Handle negatives: 8: if (num < 0) { 9: neg = "negative "; 10: num = abs(num); 11: } 12: if (num >= 1000000) 13: return "Out of range"; 14: if (num >= 1000) { 15: str = "M" * (num / 1000); 16: num = num % 1000; 17: if (num == 0) 18: return str; 19: } 20: if (num >= 100) { 21: str = str + (num / 100).roman_numeral_scheme("C", "D", "M"); 22: num = num % 100; 23: if (num == 0) 24: return str; 25: } 26: if (num >= 10) { 27: str = str + (num / 10).roman_numeral_scheme("X", "L", "C"); 28: num = num % 10; 29: if (num == 0) 30: return str; 31: } 32: if (num > 0) 33: str = str + num.roman_numeral_scheme("I", "V", "X"); 34: else if (!str) 35: str = ""; 36: return neg + str;
// Created 27-Mar-1995 as a part of ColdCore, see: @help Credit