美文网首页
一段代码实现数字翻译成英文

一段代码实现数字翻译成英文

作者: 喜剧之王爱创作 | 来源:发表于2020-03-04 10:39 被阅读0次
function SpellNumber(MyNumber)
{
var Result = "";
var MyNumberText = MyNumber.toString();

var IntegerText = MyNumberText ;
var DecimaText = "" ;
var count = 0;
var Place = new Array(""," Thousand "," Million "," Billion "," Trillion ");

var DecimalPlace = MyNumberText.indexOf(".");
if( DecimalPlace > 0)
{
IntegerText = MyNumberText.substring(0,DecimalPlace) ;
DecimaText = MyNumberText.substring(DecimalPlace+1,MyNumberText.length) ;
}

while( IntegerText != "" )
{

var temp = GetHundreds( right("000"+IntegerText,3) );
if( temp != "" )
{
   Result = temp + Place[count] + Result ;
}
if( IntegerText.length > 3 )
IntegerText = mid(IntegerText,0,IntegerText.length-3);
else
IntegerText = "" ;
count++;
}
  
if( DecimaText != "" )
{
var DecimaLength = MyNumberText.length - DecimalPlace - 1 ;
Result = Result + " Point"
for( i=0; i < DecimaLength; i++)
{
Result = Result +" "+ GetDigit(parseInt(mid(DecimaText,i,1))) ;
}
}
return Result;
}

//Converts a number text from 100-999 into text
function GetHundreds(MyNumberText)
{

var Result = "";
if( parseInt(MyNumberText) == 0) return "";

MyNumberText = right("000"+MyNumberText,3);
var hundred = mid(MyNumberText,0,1) ;
var ten = mid(MyNumberText,1,1) ;
var one = mid(MyNumberText,2,1) ;

if( hundred != "0")
Result = GetDigit(parseInt(hundred)) + " Hundred " ;
if( ten != "0" )
Result = Result + GetTens(mid(MyNumberText,1,2)) ;
else if( one != "0" )
Result = Result + " Zero " + GetDigit(parseInt(one)) ;
return Result;
}

// Converts a number text from 10 to 99 into text.
function GetTens(TensText)
{
var Result = "";
var tenDigit = parseInt(left(TensText,1)) ;
var realDigit = parseInt(TensText);
//If value between 10-19
if( tenDigit == 1 )
{
switch (realDigit)
{
case 10: Result = "Ten" ; break;
            case 11: Result = "Eleven" ; break;
            case 12: Result = "Twelve" ; break;
            case 13: Result = "Thirteen"; break;
            case 14: Result = "Fourteen"; break;
            case 15: Result = "Fifteen"; break;
            case 16: Result = "Sixteen"; break;
            case 17: Result = "Seventeen"; break;
            case 18: Result = "Eighteen"; break;
            case 19: Result = "Nineteen"; break;
}
}
else //If value between 20-99
{
switch (tenDigit)
{
case 2: Result = "Twenty "; break;
            case 3: Result = "Thirty "; break;
            case 4: Result = "Forty "; break;
            case 5: Result = "Fifty "; break;
            case 6: Result = "Sixty "; break;
            case 7: Result = "Seventy "; break;
            case 8: Result = "Eighty "; break;
            case 9: Result = "Ninety "; break;
}
if( right(TensText, 1) != "0")
Result = Result + GetDigit( parseInt(right(TensText, 1)));
}

return Result;
}

//Converts a number from 0 to 9 into text
function GetDigit(Digit)
{
var Result = "";
switch (Digit)
{
case 0: Result = "Zero" ; break;
case 1: Result = "One" ; break;
case 2: Result = "Two" ; break;
        case 3: Result = "Three" ; break;
        case 4: Result = "Four" ; break;
        case 5: Result = "Five" ; break;
        case 6: Result = "Six" ; break;
        case 7: Result = "Seven" ; break;
        case 8: Result = "Eight" ; break;
        case 9: Result = "Nine"; break;
}
return Result;
}

function left(mainStr,lngLen) 
{ 
if (lngLen>0) {return mainStr.substring(0,lngLen)} 
else{return null} 
} 

function right(mainStr,lngLen) 
{ 
if (mainStr.length-lngLen>=0 && mainStr.length>=0 && mainStr.length-lngLen<=mainStr.length) { 
return mainStr.substring(mainStr.length-lngLen,mainStr.length)} 
else{return null} 
} 
function mid(mainStr,starnum,endnum)
{ 
if (mainStr.length>=0){ 
return mainStr.substr(starnum,endnum) 
}else{return null} 

}

去试试吧!

相关文章

网友评论

      本文标题:一段代码实现数字翻译成英文

      本文链接:https://www.haomeiwen.com/subject/mzzplhtx.html