更新时间:2022-04-13 00:10:09
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'; }
调用:
ConvertToWords(123,450,000.66) -->ONE HUNDRED AND TWENTY THREE MILLION FOUR HUNDRED AND FIFTY THOUSAND SIXTY SIX CENTS ONLY