Created
July 5, 2013 18:51
-
-
Save kjantzer/5936491 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
Convert numbers to words | |
copyright 25th July 2006, by Stephen Chapman http://javascript.about.com | |
permission to use this Javascript on your web page is granted | |
provided that all of the code (including this copyright notice) is | |
used exactly as shown (you can change the numbering system if you wish) | |
*/ | |
var numberToWords = function(s){ | |
var th = ['','thousand','million', 'billion','trillion']; | |
var dg = ['zero','one','two','three','four', 'five','six','seven','eight','nine']; | |
var tn = ['ten','eleven','twelve','thirteen', 'fourteen','fifteen','sixteen', 'seventeen','eighteen','nineteen']; | |
var tw = ['twenty','thirty','forty','fifty', 'sixty','seventy','eighty','ninety']; | |
s = (s||'').toString(); s = s.replace(/[\, ]/g,''); if (s != parseFloat(s)) return 'not a number'; var x = s.indexOf('.'); if (x == -1) x = s.length; if (x > 15) return 'too big'; var n = s.split(''); var str = ''; var sk = 0; for (var i=0; i < x; i++) {if ((x-i)%3==2) {if (n[i] == '1') {str += tn[Number(n[i+1])] + ' '; i++; sk=1;} else if (n[i]!=0) {str += tw[n[i]-2] + ' ';sk=1;}} else if (n[i]!=0) {str += dg[n[i]] +' '; if ((x-i)%3==0) str += 'hundred ';sk=1;} if ((x-i)%3==1) {if (sk) str += th[(x-i-1)/3] + ' ';sk=0;}} if (x != s.length) {var y = s.length; str += 'point '; for (var i=x+1; i<y; i++) str += dg[n[i]] +' ';} return str.replace(/\s+/g,' '); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment