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}
}
去试试吧!
网友评论