-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathnumberToTextFormatter.js
More file actions
38 lines (36 loc) · 1.4 KB
/
numberToTextFormatter.js
File metadata and controls
38 lines (36 loc) · 1.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
var ones = ['','one','two','three','four','five','six','seven','eight','nine','ten','eleven','twelve','thirteen','fourteen','fifteen','sixteen','seventeen','eighteen','nineteen'];
var tens = ['','ten','twenty','thirty','forty','fifty','sixty','seventy','eighty','ninety'];
var oneMillion = 1000000;
var oneBillion = 1000000000;
var format = function(input){
if (input < 19){
return ones[input];
} else if (input < 100) {
var amountOfTens = Math.floor(input/10);
input = input - amountOfTens * 10;
var tensText = tens[amountOfTens];
var restOfText = format(input);
if(restOfText.length > 0){
restOfText = ' ' + restOfText;
}
return tensText + restOfText;
} else if (input < 1000) {
var amountOfHundreds = Math.floor(input/100);
input = input - amountOfHundreds * 100;
var hundredsText = ones[amountOfHundreds] + ' hundred';
var restOfText = format(input);
if(restOfText.length > 0){
restOfText = ' and ' + restOfText;
}
return hundredsText + restOfText;
} else if (input < oneMillion) {
var amountOfThousands = Math.floor(input/1000);
input = input - amountOfThousands * 1000;
return format(amountOfThousands) + ' thousand ' + format(input);
} else if (input < oneBillion) {
var amountOfMillions = Math.floor(input/oneMillion);
input = input - amountOfMillions * oneMillion;
return format(amountOfMillions) + ' million ' + format(input);
}
}
module.exports = {format: format};