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;
}