convertNumberToEnglishWords function
String
convertNumberToEnglishWords(
- int number
)
Implementation
String convertNumberToEnglishWords(int number) {
/// MODIFY CODE ONLY BELOW THIS LINE
if (number == 0) return 'zero';
// Lists for units, tens, and special cases
final englishUnits = [
'zero',
'one',
'two',
'three',
'four',
'five',
'six',
'seven',
'eight',
'nine'
];
final englishTens = [
'ten',
'twenty',
'thirty',
'forty',
'fifty',
'sixty',
'seventy',
'eighty',
'ninety'
];
final specialNumbers = {
11: 'eleven',
12: 'twelve',
13: 'thirteen',
14: 'fourteen',
15: 'fifteen',
16: 'sixteen',
17: 'seventeen',
18: 'eighteen',
19: 'nineteen'
};
String result = '';
// Handle billions
if (number >= 1000000000) {
int billions = number ~/ 1000000000;
result += '${convertNumberToEnglishWords(billions)} billion';
number %= 1000000000;
if (number > 0) result += ' ';
}
// Handle millions
if (number >= 1000000) {
int millions = number ~/ 1000000;
result += '${convertNumberToEnglishWords(millions)} million';
number %= 1000000;
if (number > 0) result += ' ';
}
// Handle thousands
if (number >= 1000) {
int thousands = number ~/ 1000;
result += '${convertNumberToEnglishWords(thousands)} thousand';
number %= 1000;
if (number > 0) result += ' ';
}
// Handle hundreds
if (number >= 100) {
int hundreds = number ~/ 100;
result += '${englishUnits[hundreds]} hundred';
number %= 100;
if (number > 0) result += ' ';
}
// Handle numbers between 10 and 19
if (number >= 10 && number < 20) {
result += specialNumbers[number]!;
return result; // Early exit to avoid further processing
}
// Handle tens
if (number >= 20) {
int tens = number ~/ 10;
result += englishTens[tens - 1];
number %= 10;
if (number > 0) result += '-';
}
// Handle units
if (number > 0) {
result += englishUnits[number];
}
return result;
/// MODIFY CODE ONLY ABOVE THIS LINE
}