translate static method

String translate(
  1. int number, {
  2. bool withDashes = true,
})

Translates an integer that's less than 1 trillion to a String representation of that integer. number needs to be less than 999999999999 or you'll recieve an error. withDashes is an optional boolen parameter that will prevent - being added between the tens and ones places.

Implementation

static String translate(int number, {bool withDashes = true}) {
  if (withDashes == false) _useDash = false;
  final maxNumber = double.maxFinite.toInt();
  final isOutOfBounds = number.abs() > maxNumber ? true : false;
  if (isOutOfBounds) {
    return 'Number has to be between -$maxNumber and $maxNumber. These numbers are dependent on the platform you\'re running on.';
  }
  if (number == 0) {
    return 'zero';
  } else {
    final isNegative = number > 0 ? false : true;
    if (isNegative) number = number.abs();
    var returnValue = isNegative ? 'negative ' : '';

    final paddedNumber = _padNumber(number);
    final quintillions = paddedNumber.substring(0, 1);
    final quadrillions = paddedNumber.substring(1, 4);
    final trillions = paddedNumber.substring(4, 7);
    final billions = paddedNumber.substring(7, 10);
    final millions = paddedNumber.substring(10, 13);
    final thousands = paddedNumber.substring(13, 16);
    final hundreds = paddedNumber.substring(16);

    returnValue += _translateOnesPlace(quintillions);
    returnValue = _translateOnesPlace(quintillions) != ''
        ? returnValue + ' quintillion '
        : returnValue + '';

    returnValue += _translateThreeNumbers(quadrillions);
    returnValue = _translateThreeNumbers(quadrillions) != ''
        ? returnValue + ' quadrillion '
        : returnValue + '';

    returnValue += _translateThreeNumbers(trillions);
    returnValue = _translateThreeNumbers(trillions) != ''
        ? returnValue + ' trillion '
        : returnValue + '';

    returnValue += _translateThreeNumbers(billions);
    returnValue = _translateThreeNumbers(billions) != ''
        ? returnValue + ' billion '
        : returnValue + '';

    returnValue += _translateThreeNumbers(millions);
    returnValue = _translateThreeNumbers(millions) != ''
        ? returnValue + ' million '
        : returnValue + '';

    returnValue += _translateThreeNumbers(thousands);
    returnValue = _translateThreeNumbers(thousands) != ''
        ? returnValue + ' thousand '
        : returnValue + '';

    returnValue += _translateThreeNumbers(hundreds);

    return returnValue;
  }
}