[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;
37:
38: // $#Edited: 24 Jul 97 15:58 $user_scott
["// Created 26-Mar-1995 as a part of ColdCore, see: @help Credit"]