spell static method

String spell(
  1. int number
)

Spells out number in English.

Implementation

static String spell(int number) {
  if (number < 0) return 'negative ${spell(-number)}';
  if (number < 20) return _ones[number];
  if (number < 100) {
    final t = number ~/ 10;
    final o = number % 10;
    return o == 0 ? _tens[t] : '${_tens[t]}-${_ones[o]}';
  }
  if (number < 1000) {
    final h = number ~/ 100;
    final rem = number % 100;
    return rem == 0
        ? '${_ones[h]} hundred'
        : '${_ones[h]} hundred ${spell(rem)}';
  }
  for (final scale in _spellScales) {
    final divisor = scale[0] as int;
    final name = scale[1] as String;
    if (number >= divisor) {
      final whole = number ~/ divisor;
      final rem = number % divisor;
      return rem == 0
          ? '${spell(whole)} $name'
          : '${spell(whole)} $name ${spell(rem)}';
    }
  }
  return number.toString();
}