在线工具箱
数字转中文

数字转中文工具

阿拉伯数字转中文小写、大写、人民币金额、年份读法与序数词,支持批量与万亿级数值。

隐私安全:所有处理均在您的浏览器本地完成,数据绝不上传
数字转换中文财务

即时转换

支持千分位逗号(1,000)、货币符号(¥)、全角数字与正负号;小数与超长整数均可。

写法
转换结果

—

常用示例

批量转换

每行一个数字,空行自动忽略。结果可逐行复制,或以制表符分隔复制全部。

批量转换结果
输入规范化转换结果操作

暂无内容,请在上方输入数字。

内置边界用例自检

通过 30 / 30

以下 30 条为中文数词经典边界(含「零」规则、金额规范、年份与序数), 列出期望值与实际输出,可作为转换规则的可视化回归参考。

内置测试用例与期望值
说明输入模式期望输出实际输出
零0普通·小写零零
十10普通·小写十十
十五15普通·小写十五十五
百位零合并105普通·小写一百零五一百零五
一百一十110普通·小写一百一十一百一十
节尾零不读1200普通·小写一千二百一千二百
千位零1001普通·小写一千零一一千零一
万节补零10001普通·小写一万零一一万零一
百万零一1000001普通·小写一百万零一一百万零一
一百万零一百1000100普通·小写一百万零一百一百万零一百
一亿零二十万100200000普通·小写一亿零二十万一亿零二十万
整亿不读万节100000000普通·小写一亿一亿
一亿零一100000001普通·小写一亿零一一亿零一
一亿零一十100000010普通·小写一亿零一十一亿零一十
负数-5普通·小写负五负五
小数3.14普通·小写三点一四三点一四
小数中的零10.04普通·小写十点零四十点零四
大写写法105普通·大写壹佰零伍壹佰零伍
大写十10普通·大写壹拾壹拾
万亿级1234567890123456普通·小写一千二百三十四兆五千六百七十八亿九千零一十二万三千四百五十六一千二百三十四兆五千六百七十八亿九千零一十二万三千四百五十六
金额(元角分)1234.56金额·小写壹仟贰佰叁拾肆元伍角陆分壹仟贰佰叁拾肆元伍角陆分
金额(元整)1234金额·小写壹仟贰佰叁拾肆元整壹仟贰佰叁拾肆元整
金额(有分无角)10001.05金额·小写壹万零壹元零伍分壹万零壹元零伍分
金额(角为零)0.04金额·小写零元零肆分零元零肆分
金额(进位到分)1234.567金额·小写壹仟贰佰叁拾肆元伍角柒分壹仟贰佰叁拾肆元伍角柒分
金额(整亿)100000000金额·小写壹亿元整壹亿元整
年份2024年份·小写二〇二四二〇二四
序数1序数·小写第一第一
序数(大数)110序数·小写第一百一十第一百一十
序数(大写)12序数·大写第壹拾贰第壹拾贰

工作原理

  1. 1输入先做规范化:全角数字转半角、去除千分位逗号与空白、去除 ¥ / $ 等货币符号、补全缺失的整数位或小数位,再用正则校验格式是否合法。
  2. 2整数部分按每 4 位一节从低位向高位切分(个节 / 万节 / 亿节 / 兆节…),每节内 0~9999 转成「X千X百X十X」并追加节单位。
  3. 3零的处理遵循四条规则:① 节内中间零合并为一个「零」(105 → 一百零五);② 节尾零不读(1200 → 一千二百);③ 跨节时低节最高位为 0 且节值非零要补「零」(1000001 → 一百万零一);④ 整节为零且更高节非零则该节不读,但其下仍有非零节时要补一个「零」(100000000 → 一亿,100000010 → 一亿零一十)。
  4. 4各模式复用同一套整数转换:普通模式追加「点 + 逐位小数」,负数加「负」前缀;金额模式用大写数字并把元 / 角 / 分拼接;年份模式逐位读且 0 读作「〇」;序数模式在普通结果前加「第」。
  5. 5全程使用字符串与 BigInt 运算,不经过浮点数,因此万亿级甚至 48 位整数都不会出现精度丢失;转换在浏览器本地完成,不发起任何网络请求。

常见问题

「一十」和「十」有什么区别?什么时候用哪种写法?

中文口语中 10 读作「十」而不是「一十」,11~19 同理读作「十一」至「十九」,因此普通模式(小写)对最左侧的「一十」会省略「一」。但大写财务写法必须补全为「壹拾」,因为票据上不允许出现可被添改的「拾」,所以大写模式保留「壹拾」。本工具已按此规范区分处理。

金额大写为什么会有「零元零肆分」这种写法?

这是人民银行对票据大写金额的规范要求:金额小于 1 元时,整数部分写「零元」;角位为零而分位不为零时,角位必须补「零」再写分,以防被篡改,例如 0.04 应写作「零元零肆分」而不是「肆分」。同理 10001.05 写作「壹万零壹元零伍分」。

为什么 100000010 是「一亿零一十」而不是「一亿零一十万」?

按 4 位一节的规则,100000010 = 1亿 + 0万 + 10(个节),万节整节为零不读,但其低位节仍有数值,因此跨节补一个「零」,个节读作「一十」,合起来就是「一亿零一十」。而 100000000 的万节与个节都为零,没有需要读出的低位节,所以直接读「一亿」。

支持多大的数字?会精度丢失吗?

普通模式整数部分最多支持 48 位(对应节单位至「载」),金额模式按人行场景限制整数部分最多 16 位(约 1000 万亿元)。转换内部完全使用字符串分节与 BigInt 运算,不经过 JavaScript 的浮点数,因此不会出现大数精度丢失;但输入超过 JavaScript Number 安全整数范围时,请直接以文本输入(工具按字符串解析,不受影响)。

小数和负数是怎么处理的?

小数部分逐位读出,小数点读作「点」,例如 3.14 → 三点一四、10.04 → 十点零四;负数统一加「负」前缀,例如 -5 → 负五。金额模式则不受逐位规则影响,会把小数四舍五入到「分」后按元 / 角 / 分结构输出。年份模式与序数模式不支持小数,输入小数会给出内联错误提示。

批量转换支持哪些输入格式?

批量区每行填一个数字,空行会自动忽略;同样支持千分位逗号、货币符号、全角数字与正负号。结果以表格展示(原始输入 / 规范化值 / 转换结果 / 状态),可逐行复制,也可一键复制全部——复制内容为「输入 + 制表符 + 结果」,直接粘贴到 Excel / 飞书表格即可分列。

更多在线工具