Number to english words
by rishul matta
JavaScript
var lessHun = {
1: 'One',
2: 'Two',
3: 'Three',
4: 'Four',
5: 'Five',
6: 'Six',
7: 'Seven',
8: 'Eight',
9: 'Nine',
10: 'Ten',
11: 'Eleven',
12: 'Twelve',
13: 'Thirteen',
14: 'Fourteen',
15: 'Fifteen',
16: 'Sixteen',
17: 'Seventeen',
18: 'Eighteen',
19: 'Nineteen',
20: 'Twenty',
30: 'Thirty',
40: 'Fourty',
50: 'Fifty',
60: 'Sixty',
70: 'Seventy',
80: 'Eighty',
90: 'Ninety'
};
var period = ['Hundred', 'Thousand', 'Million', 'Billion']
function convert(nos) {
if (nos ==0) {
return 'zero;'
}
let counter = 0;
let quotient = 9999999999, reminder, text
text = [];
while(nos > 0) {
quotient = parseInt(nos / 1000);
reminder = parseInt(nos % 1000);
let sQue = 9999;
let loopText = [];
while (sQue > 0) {
if (reminder >= 100) {
sQue = parseInt(reminder/100);
loopText.push(lessHun[sQue]);
loopText.push(period[0]);
reminder = parseInt(reminder%100);
} else {
if (reminder >= 20 && reminder < 100) {
sQue = parseInt(reminder/10);
if (lessHun[sQue * 10]) {
loopText.push(lessHun[sQue * 10]);
}
reminder = parseInt(reminder%10);
}
else {
if (lessHun[reminder]) {
loopText.push(lessHun[reminder]);
}
sQue = 0;
}
}
}
if (loopText.length > 0) {
if (counter > 0) {
loopText.push(period[counter]);
}
text.push(loopText);
}
if (quotient > 0) {
counter++;
}
nos = quotient;
}
let str = text.reverse().map((arr) => arr.join(" "));
if (text.length > 1 ) {
str = str.join(",");
return str.substring(0,str.lastIndexOf(",")) + ' and ' + str.substring(str.lastIndexOf(",")+1);
} else {
return str.join("")
}
}