1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
var  aTens = [ "TWENTY", "THIRTY", "FORTY", "FIFTY", "SIXTY", "SEVENTY", "EIGHTY", "NINETY"];
var aOnes = [ "ZERO", "ONE", "TWO", "THREE", "FOUR", "FIVE", "SIX", "SEVEN", "EIGHT", "NINE",
"TEN", "ELEVEN", "TWELVE", "THIRTEEN", "FOURTEEN", "FIFTEEN", "SIXTEEN", "SEVENTEEN", "EIGHTEEN",
"NINETEEN" ];
 
function ConvertToHundreds(num)
{
var cNum, nNum;
var cWords = "";
 
num %= 1000;
if (num > 99) {
  /* Hundreds. */
  cNum = String(num);
  nNum = Number(cNum.charAt(0));
  cWords += aOnes[nNum] + " HUNDRED";
  num %= 100;
  if (num > 0)
     cWords += " AND "
}
 
 
 
if (num > 19) {
  /* Tens. */
  cNum = String(num);
  nNum = Number(cNum.charAt(0));
  cWords += aTens[nNum - 2];
  num %= 10;
  if (num > 0)
     cWords += " ";
}
 
if (num > 0) {
  /* Ones and teens. */
  nNum = Math.floor(num);
  cWords += aOnes[nNum];
}
 
return cWords;
}
 
function ConvertToWords(num)
{
var aUnits = [ "THOUSAND", "MILLION", "BILLION", "TRILLION", "QUADRILLION" ];
var cWords = (num >= 1 && num < 2) ? "" : "";
var nLeft = Math.floor(num);
for (var i = 0; nLeft > 0; i++) {
   if (nLeft % 1000 > 0) {
      if (i != 0)
         cWords = ConvertToHundreds(nLeft) + " " + aUnits[i - 1] + " " + cWords;
      else
         cWords = ConvertToHundreds(nLeft) + " " + cWords;
   }
   nLeft = Math.floor(nLeft / 1000);
}
num = Math.round(num * 100) % 100;
if (num > 0)
  cWords += ConvertToHundreds(num) + " CENTS ";
// else
//  cWords += "Zero Cents";
 
return cWords+'ONLY';
}<br><br>调用:<br>ConvertToWords(123,450,000.66) -->ONE HUNDRED AND TWENTY THREE MILLION FOUR HUNDRED AND FIFTY THOUSAND SIXTY SIX CENTS ONLY