2009-11-21 108 views
2

如何使用Javascript将数字转换为单词?显示器需要印度卢比和paise格式。如何将数字转换为单词?

+0

快速谷歌搜索产生了这个 - http://www.codeproject.com/KB/vbscript/CurrencyToWord.aspx?msg=2159336。尽管它在vbscript中,但它会给你一个想法。 – 2009-11-21 06:04:56

+3

如果你展示了你试图做的事情,以及你正在使用的算法,它会有所帮助,否则它听起来像你不关心这样做,你只是希望有人免费给你一些代码。 – 2009-11-21 06:05:24

+1

@詹姆斯布莱克:赞同。不过,OP没有问“plz指导我”,而不是“plz send me teh codez”;) – 2009-11-21 06:13:07

回答

5

没有内置功能。

function test_skill() { 
    var junkVal=document.getElementById('rupees').value; 
    junkVal=Math.floor(junkVal); 
    var obStr=new String(junkVal); 
    numReversed=obStr.split(""); 
    actnumber=numReversed.reverse(); 

    if(Number(junkVal) >=0){ 
     //do nothing 
    } 
    else{ 
     alert('wrong Number cannot be converted'); 
     return false; 
    } 
    if(Number(junkVal)==0){ 
     document.getElementById('container').innerHTML=obStr+''+'Rupees Zero Only'; 
     return false; 
    } 
    if(actnumber.length>9){ 
     alert('Oops!!!! the Number is too big to covertes'); 
     return false; 
    } 

    var iWords=["Zero", " One", " Two", " Three", " Four", " Five", " Six", " Seven", " Eight", " Nine"]; 
    var ePlace=['Ten', ' Eleven', ' Twelve', ' Thirteen', ' Fourteen', ' Fifteen', ' Sixteen', ' Seventeen', ' Eighteen', ' Nineteen']; 
    var tensPlace=['dummy', ' Ten', ' Twenty', ' Thirty', ' Forty', ' Fifty', ' Sixty', ' Seventy', ' Eighty', ' Ninety' ]; 

    var iWordsLength=numReversed.length; 
    var totalWords=""; 
    var inWords=new Array(); 
    var finalWord=""; 
    j=0; 
    for(i=0; i<iWordsLength; i++){ 
     switch(i) 
     { 
     case 0: 
      if(actnumber[i]==0 || actnumber[i+1]==1) { 
       inWords[j]=''; 
      } 
      else { 
       inWords[j]=iWords[actnumber[i]]; 
      } 
      inWords[j]=inWords[j]+' Only'; 
      break; 
     case 1: 
      tens_complication(); 
      break; 
     case 2: 
      if(actnumber[i]==0) { 
       inWords[j]=''; 
      } 
      else if(actnumber[i-1]!=0 && actnumber[i-2]!=0) { 
       inWords[j]=iWords[actnumber[i]]+' Hundred and'; 
      } 
      else { 
       inWords[j]=iWords[actnumber[i]]+' Hundred'; 
      } 
      break; 
     case 3: 
      if(actnumber[i]==0 || actnumber[i+1]==1) { 
       inWords[j]=''; 
      } 
      else { 
       inWords[j]=iWords[actnumber[i]]; 
      } 
      if(actnumber[i+1] != 0 || actnumber[i] > 0){ 
       inWords[j]=inWords[j]+" Thousand"; 
      } 
      break; 
     case 4: 
      tens_complication(); 
      break; 
     case 5: 
      if(actnumber[i]==0 || actnumber[i+1]==1) { 
       inWords[j]=''; 
      } 
      else { 
       inWords[j]=iWords[actnumber[i]]; 
      } 
      if(actnumber[i+1] != 0 || actnumber[i] > 0){ 
       inWords[j]=inWords[j]+" Lakh"; 
      } 
      break; 
     case 6: 
      tens_complication(); 
      break; 
     case 7: 
      if(actnumber[i]==0 || actnumber[i+1]==1){ 
       inWords[j]=''; 
      } 
      else { 
       inWords[j]=iWords[actnumber[i]]; 
      } 
      inWords[j]=inWords[j]+" Crore"; 
      break; 
     case 8: 
      tens_complication(); 
      break; 
     default: 
      break; 
     } 
     j++; 
    } 

    function tens_complication() { 
     if(actnumber[i]==0) { 
      inWords[j]=''; 
     } 
     else if(actnumber[i]==1) { 
      inWords[j]=ePlace[actnumber[i-1]]; 
     } 
     else { 
      inWords[j]=tensPlace[actnumber[i]]; 
     } 
    } 
    inWords.reverse(); 
    for(i=0; i<inWords.length; i++) { 
     finalWord+=inWords[i]; 
    } 
    document.getElementById('container').innerHTML=obStr+' '+finalWord; 
} 

包括下面的代码在你的HTML

<input type="text" name="rupees" id="rupees" /> 
<input type="button" name="sr1" value="Click Here" onClick="test_skill()"/> 

<div id="container"></div> 

来源:Convert Amount in numbers to words in JavaScript