
Javascript function for converting numbers to words.
If your input is 123456 it will convert “One Lakh Twenty Three Thousand Four Hundred and Fifty Six”.
function convertNumberToWords(amount){
var words = new Array();
words[0]=''; words[1]='One'; words[2]='Two'; words[3]='Three'; words[4]='Four'; words[5]='Five'; words[6]='Six'; words[7]='Seven'; words[8]='Eight'; words[9]='Nine'; words[10]='Ten';
words[11]='Eleven'; words[12]='Twelve'; words[13]='Thirteen'; words[14]='Fourteen'; words[15]='Fifteen'; words[16]='Sixteen'; words[17]='Seventeen'; words[18]='Eighteen'; words[19]='Nineteen'; words[20]='Twenty';
words[30]='Thirty'; words[40]='Forty'; words[50]='Fifty'; words[60]='Sixty'; words[70]='Seventy'; words[80]='Eighty'; words[90]='Ninety';
amount=amount.toString();
var atemp=amount.split(".");
var number=atemp[0].split(",").join("");
var n_length = number.length;
var words_string = "";
if(n_length<=9){
var n_array = new Array(0,0,0,0,0,0,0,0,0);
var received_n_array = new Array();
for(var i=0;i<n_length;i++){ received_n_array[i] = number.substr(i,1); }
for(var i=9-n_length, j=0;i<9;i++,j++){ n_array[i] = received_n_array[j]; }
for(var i=0, j=1;i<9;i++,j++){
if(i==0 || i==2 || i==4 || i==7){
if(n_array[i]==1){n_array[j] = 10+parseInt(n_array[j]); n_array[i] = 0;}
}
}
value = "";
for(var i=0;i<9;i++){
if(i==0 || i==2 || i==4 || i==7){ value = n_array[i]*10; }
else{ value = n_array[i]; }
if(value!=0){ words_string+= words[value]+" "; }
if((i==1 && value!=0)||(i==0 && value!=0 && n_array[i+1]==0)){ words_string+= "Crores "; }
if((i==3 && value!=0)||(i==2 && value!=0 && n_array[i+1]==0)){ words_string+= "Lakhs "; }
if((i==5 && value!=0)||(i==4 && value!=0 && n_array[i+1]==0)){ words_string+= "Thousand "; }
if(i==6 && value!=0 && (n_array[i+1]!=0 && n_array[i+2]!=0)){ words_string+= "Hundred and "; }
else if(i==6 && value!=0){ words_string+= "Hundred "; }
}
words_string=words_string.split(" ").join(" ");
}
return words_string;
}