piapia123
zh

数字转中文大写(金额)

转换

所有处理都在浏览器本地完成,数据不上传服务器

输入
把文件拖到这里可直接载入
输出

把一个数字转成财务用的大写金额,以及平时读的中文写法,顺带给出千分位格式。大写金额是防篡改的写法 —— 壹贰叁肆伍陆柒捌玖拾佰仟 笔画多,没法通过添笔改成另一个字,所以银行票据一直用它。也正因为是给票据用的,它有一批不能"顺手简化"的规矩:十位上的 1 要写「壹拾」,整数末尾要写「整」,中间的零只读一个;这些地方错了,票就会被退回来。本工具按这套规范处理,并且把中文读法(十、一百一十这类口语写法)单独列一行,两者互不干扰。

功能

  • 一次给出大写金额、中文读法、英文读法、千分位四种写法
  • ⚠️ 英文读法同时支持短级差(美式)与长级差(旧英式)—— 10⁹ 以上把两套并列展示,因为 billion 在两套里相差一千倍而从字面上看不出来
  • ⚠️ 中文按万/亿四位分组、英文按三位分组,所以同一个数在两种读法里的「节拍」不同
  • 按财务规范处理:10 写作「壹拾元整」而不是「拾元整」
  • 零的读法正确:1005 读作壹仟零伍,100000005 读作壹亿零伍
  • 分级到万、亿、万亿,整数部分支持到 16 位
  • 小数超过两位时四舍五入到分,并在结果里注明这次取整
  • 支持千分位逗号、货币符号、正负号与省略整数位的 .5 写法
  • 金额精度全程走字符串与 BigInt,不会出现一分钱的浮点误差
  • 中文读法按口语习惯省略「一十」的「一」:10 读作十、110 读作一百一十

使用方法

  1. 把数字粘进输入框,可以带千分位逗号或货币符号
  2. 四行结果同时出现:大写金额、中文读法、英文读法、千分位
  3. 小数超过两位时,按选项四舍五入到分或直接报错
  4. 点某一行的复制按钮,取走报销单上要填的那一行

常见问题

为什么 10 元要写成「壹拾元整」而不是「拾元整」?
财务规范要求大写金额的每一位都完整写出,包括十位上的 1 —— 写成「拾元整」虽然口语上没问题,但票据审核会认为位数不完整。中文读法那一行给的是口语写法(10 读作十),两者是不同的用途,所以分开列。
为什么 100000005 读作「壹亿零伍」?
因为中间的「万」这一级整级都是零,需要用「零」占位,否则读者无法判断「伍」是在个位还是万位。规则是:整级为零时留一个「零」,本级最高位为零时也留一个。所以 1005 是「壹仟零伍」,10500 是「壹万零伍佰」。
为什么小数超过两位要四舍五入?
人民币的最小单位是分,也就是两位小数 —— 大写金额里没有比「分」更小的单位可用。默认做法是四舍五入到分,并在结果里注明「已四舍五入到分」,这样你知道结果与原数有细微差别;不想让它自动取整,可以把选项改成「直接报错」。
大数字会不会算错?
不会。整数位、小数位与进位全部按字符串和 BigInt 处理,没有经过浮点数 —— 0.29 乘以 100 在双精度下等于 28.999999999999996,用浮点做四舍五入就可能少一分钱,而这个误差在结果里完全看不出来。

相关工具