logo 范 · 拾光录
网址收集 关于作者 Github Gitee
杂文随笔4
Hexo博客:基础使用Hexo博客:Next主题Hexo博客:Next进阶使用Hexo博客:Next高级配置
前端编程3
前端基础知识16
UniApp15
Vue框架19
Java编程7
Java基础知识14
SpringBoot31
SpringMVC14
MyBatis8
SpringCloud15
RocketMQ1
MyCat1
数据库4
MySQL6
Redis7
MongoDB10
H21
Java技术栈4
知识整理分布式锁的实现方案MySQL事务MySQL的锁
软件工具箱14
IDEAGitMavenGradleNginx安装Nginx配置JMeter压测OllamaPicGoRustFSVSCodeDockerObsidianObs录制
Linux知识11
树莓派安装及使用ArchLinux:常用软件ArchLinux:基础系统安装ArchLinux:深度优化ArchLInux:图形化界面安装ArchLinux:Nirifrp内网穿透Jar启动脚本Linux常用命令VirtualBox安装CentOSVirtualBox安装Ubuntu
Python编程6
Python基础知识Python语法yolo目标检测OpenCV的使用及树莓派平台condauv
创意设计2
Blender:入门知识UI设计基础知识
AI相关9
Claude CodeHermes AgentOpenAI基本使用OpenAI工具调用OpenAI记忆管理OpenAI推理执行OpenAI开发框架Langchainllama.cpp

代码

function numberToChinese(num) {
    const digits = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'];
    const units = ['', '拾', '佰', '仟'];
    const bigUnits = ['', '万', '亿'];

    if (num === 0) return digits[0]; // 处理零的情况

    let result = '';
    let bigUnitPos = 0; // 大单位的位置(万、亿)
    let needZero = false; // 是否需要补零

    while (num > 0) {
        let chunk = num % 10000; // 每次处理4位(个、十、百、千)
        let chunkStr = '';
        let unitPos = 0;

        // 处理当前4位
        while (chunk > 0) {
            const n = chunk % 10;
            if (n === 0) {
                if (needZero) {
                    chunkStr = digits[0] + chunkStr;
                    needZero = false;
                }
            } else {
                chunkStr = digits[n] + units[unitPos] + chunkStr;
                needZero = true;
            }
            unitPos++;
            chunk = Math.floor(chunk / 10);
        }

        // 拼接大单位
        if (chunkStr !== '') {
            result = chunkStr + bigUnits[bigUnitPos] + result;
        }

        bigUnitPos++;
        num = Math.floor(num / 10000); // 处理下一组4位
    }

    return result;
}

// 示例用法
console.log(numberToChinese(934)); // 输出:玖佰叁拾肆
console.log(numberToChinese(1001)); // 输出:壹仟零壹
console.log(numberToChinese(10000000)); // 输出:壹仟万
console.log(numberToChinese(123456789)); // 输出:壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖
代码