数字转中文
function numberToEnglish(num) {if (num < 0 || num > 999999999) {return 'Number out of range';}const ones = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'];const teens = ['eleven', 'twelve', 'thirteen', 'fourteen', 'fifteen', 'sixteen', 'seventeen', 'eighteen', 'nineteen'];const tens = ['ten', 'twenty', 'thirty', 'forty', 'fifty', 'sixty', 'seventy', 'eighty', 'ninety'];const bigs = ['', 'thousand', 'million', 'billion'];if (num < 10) {return ones[num];} else if (num < 20) {return teens[num - 11];} else if (num < 100) {const ten = tens[Math.floor(num / 10) - 1];const one = num % 10 !== 0 ? ones[num % 10] : '';return `${ten} ${one}`.trim();} else if (num < 1000) {const hundred = ones[Math.floor(num / 100)] + ' hundred';const rest = numberToEnglish(num % 100);return `${hundred} ${rest}`.trim();} else {let result = '';let count = 0;while (num > 0) {if (num % 1000 !== 0) {result = `${numberToEnglish(num % 1000)} ${bigs[count]} ${result}`.trim();}num = Math.floor(num / 1000);count++;}return result;}
}