如何使用JavaScript将数字转换为中文?

28 min read

以下是一个简单的 JavaScript 函数来实现数字转中文:

function convertToChinese(num) {
  if(isNaN(num)) return "请输入数字";
  const units = "个十百千万亿";
  const chars = "零一二三四五六七八九";
  let result = "";
  let unitCount = 0;
  let lastIsZero = true;
  while(num > 0) {
    const digit = num % 10;
    if(digit !== 0) {
      result = chars[digit] + units[unitCount] + result;
      lastIsZero = false;
    } else if(!lastIsZero) {
      result = "零" + result;
    }
    unitCount ++;
    if(unitCount === 4 && result.charAt(0) !== "零") {
      result = "万" + result;
      unitCount = 0;
    }
    num = Math.floor(num / 10);
  }
  if(lastIsZero) {
    result = "零";
  }
  return result;
}

使用示例:

console.log(convertToChinese(123456789)); // 一亿二千三百四十五万六千七百八十九
console.log(convertToChinese(1001)); // 一千零一
console.log(convertToChinese(1000)); // 一千
console.log(convertToChinese(10100)); // 一万零一百
console.log(convertToChinese(10001)); // 一万零一

注意:此代码是简化的,如需更完整的代码可考虑单独编写处理亿以上的部分。