Method code for $integer.to_roman_numeral()

[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"]

the Cold Dark