|  | function render(val, places = 3, smallPlaces = 0) {
  return numberMode.render(val, places, smallPlaces);
}
function numberTextSmall(val, places = 1, smallPlaces = 0) {
  if (isNaN(val)) {
    throw new RangeError("Invalid number: " + val);
  }
  if (val < 1000) {
    return round(val, smallPlaces);
  }
  let power = Math.floor(Math.log10(val));
  let order = Math.floor(power / 3);
  adjusted = round(val / Math.pow(1000, order), places).toFixed(places);
  if (order <= 8)
    return adjusted + " " + _numberWords[order - 1];
  else
    return numberTextSmall(val / Math.pow(10, 24), places, smallPlaces) + " septillion"
}
function numberText(val, places = 1, smallPlaces = 0) {
  if (isNaN(val)) {
    throw new RangeError("Invalid number: " + val);
  }
  if (val < 1000) {
    return round(val, smallPlaces);
  }
  let power = Math.floor(Math.log10(val));
  let order = Math.floor(power / 3);
  adjusted = round(val / Math.pow(1000, order), places).toFixed(places);
  if (order <= 21)
    return adjusted + " " + _numberWords[order - 1];
  else
    return numberText(val / Math.pow(10, 63), places, smallPlaces) + " vigintillion"
}
_numberWords = {
  0: "thousand",
  1: "million",
  2: "billion",
  3: "trillion",
  4: "quadrillion",
  5: "quintillion",
  6: "sextillion",
  7: "septillion",
  8: "octillion",
  9: "nonillion",
  10: "decillion",
  11: "undecillion",
  12: "duodecillion",
  13: "tredecillion",
  14: "quattuordecillion",
  15: "quindecillion",
  16: "sexdecillion",
  17: "septendecillion",
  18: "octodecillion",
  19: "novemdecillion",
  20: "vigintillion",
}
function numberScientific(val, places = 1, smallPlaces) {
  return val.toExponential(places)
}
function numberFull(val, places = 1, smallPlaces) {
  return round(val, places);
}
 |