numberToWords function

String numberToWords(
  1. num n, {
  2. WordsLanguage language = WordsLanguage.en,
})

Converts a whole number to words using the Pakistani numbering system (hundred, thousand, lakh, crore, arab, kharab).

numberToWords(125000); // 'one lakh twenty-five thousand'
numberToWords(125000, language: WordsLanguage.ur); // 'ایک لاکھ پچیس ہزار'

Throws an ArgumentError (a RangeError in the npm package) if n is not a safe integer (a whole number within ±(2^53 − 1)).

Implementation

String numberToWords(num n, {WordsLanguage language = WordsLanguage.en}) {
  if (!isSafeInteger(n)) {
    throw ArgumentError.value(n, 'n', 'Expected a safe integer');
  }
  if (n == 0) return _underHundred(0, language);
  final words = _convert(n.abs().toInt(), language).join(' ');
  if (n > 0) return words;
  return language == WordsLanguage.ur ? 'منفی $words' : 'minus $words';
}