Method code for $integer.to_english_text()

[Turn off line numbering]
  1: arg number;
  2: var an, isneg, temp;
  3: 
  4: an = abs(number);
  5: isneg = number < 0 ? "negative " : "";
  6: if (!number)
  7:     return "zero";
  8: if (an < 11)
  9:     return isneg + ones[an];
 10: if (an < 20)
 11:     return isneg + teens[an - 10];
 12: if (an < 100)
 13:     return isneg + tens[an / 10] + ((temp = an % 10) ? "-" + temp.to_english_text() : "");
 14: if (an < 1000)
 15:     return isneg + ones[an / 100] + " hundred" + ((temp = an % 100) ? " " + temp.to_english_text() : "");
 16: if (an < 1000000)
 17:     return isneg + (an / 1000).to_english_text() + " thousand" + ((temp = an % 1000) ? " " + temp.to_english_text() : "");
 18: if (an < 1000000000)
 19:     return isneg + (an / 1000000).to_english_text() + " million" + ((temp = an % 1000000) ? " " + temp.to_english_text() : "");
 20: return isneg + (an / 1000000000).to_english_text() + " billion" + ((temp = an % 1000000) ? " " + temp.to_english_text() : "");
 21: 
 22: // $#Written by: Kipp

// Created 27-Mar-1995 as a part of ColdCore, see: @help Credit

Tlon