translate static method
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;
}
}