Method code for $integer.to_english_text()

[Turn on line numbering]
arg number;
var an, isneg, temp;

an = abs(number);
isneg = number < 0 ? "negative " : "";
if (!number)
    return "zero";
if (an < 11)
    return isneg + ones[an];
if (an < 20)
    return isneg + teens[an - 10];
if (an < 100)
    return isneg + tens[an / 10] + ((temp = an % 10) ? "-" + temp.to_english_text() : "");
if (an < 1000)
    return isneg + ones[an / 100] + " hundred" + ((temp = an % 100) ? " " + temp.to_english_text() : "");
if (an < 1000000)
    return isneg + (an / 1000).to_english_text() + " thousand" + ((temp = an % 1000) ? " " + temp.to_english_text() : "");
if (an < 1000000000)
    return isneg + (an / 1000000).to_english_text() + " million" + ((temp = an % 1000000) ? " " + temp.to_english_text() : "");
return isneg + (an / 1000000000).to_english_text() + " billion" + ((temp = an % 1000000) ? " " + temp.to_english_text() : "");

// $#Written by: Kipp

["// Created 26-Mar-1995 as a part of ColdCore, see: @help Credit"]

the Cold Dark