数字转中文(小写读法 · 人民币金额大写 · 元角分整)
一个数字给出三种写法:中文小写读法(一千二百三十四点五)、人民币金额大写(壹仟贰佰叁拾肆元伍角)、按位大写。支持负数、小数和千分位逗号,金额自动四舍五入到分、连续零合并。转换在浏览器本地完成,输入不会离开这台设备。
边输入边出结果,Enter 也可以。金额按四舍五入到分,前导零会被忽略。
—
中文小写读法
—
人民币金额大写
—
按位大写
大写金额与四位分组
大写数字对照表
| 用途 | 字符 |
|---|---|
| 小写数字 | 零 一 二 三 四 五 六 七 八 九 |
| 大写数字 | 零 壹 贰 叁 肆 伍 陆 柒 捌 玖 |
| 数位 | 十 百 千 / 拾 佰 仟 |
| 数级 | 万(10⁴) 亿(10⁸) 万亿(10¹²) |
| 金额单位 | 元 角 分,1 元 = 10 角 = 100 分 |
| 结尾 | 整,只在角分都是 0 时写 |
为什么金额要写大写
小写太容易改:「一」添一笔成「二」或「十」,「十」加一横成「千」。大写没有可加笔画的余地,涂改必然留痕,所以发票「价税合计(大写)」栏、汇款凭证、合同金额都用它,尾部紧跟「整」或角分——不是为美观,是防止末尾被偷偷补一位。
四位一节,以及舍入的规则
- 四舍五入到分:只看小数第三位,够 5 进 1,能一路进到元(9.999 → 壹拾元整)。读法栏不四舍五入,
1.50读作「一点五零」,尾零保留。 - 连续零只读一个:1000001 → 壹佰万零壹,100000001 → 壹亿零壹;跨节低位不足四位也补一个零。
- 角分:元后无角有分补零,100.05 → 壹佰元零伍分;整数金额结尾加「整」,0 → 零元整;不足一元不写「零元」,0.5 → 伍角、0.05 → 伍分。
- 分节与上限:以 8 位(亿)为轴递归切分,10¹² 读成「一万亿」,不会出现「亿亿」。整数部分限 16 位(9999 万亿)——再往上只剩「京」这种不用于金额的数级,报错胜过给一个看着对其实错的值。小数最多 10 位,前导零忽略,
.5当 0.5,12.报错;进位全程走字符串,不碰浮点数。 - 「拾」:读法里以「一十」开头省成「十」(10 → 十、100000 → 十万,110 仍是「一百一十」);大写金额写全,10 元 → 壹拾元整。
- 负数加「负」;金额栏按舍入后的值判断,-0.001 舍成 零元整 便不写「负」。计算在浏览器本地跑完,输入的内容不会离开这台设备。
什么时候不能直接照抄
只出元角分,外币不适用。正规票据一般写「人民币壹仟贰佰叁拾肆元伍角」,这里出的串不带「人民币」三字,请自己前置。各开票软件、银行柜面对「零」「整」的补法细则不完全一致,「整」与「正」各有取舍,以主管税务机关和开户行为准。收据一般不接受负金额,退款走红字。
常见问题
0.5 元怎么大写? 伍角。整数部分是 0 就不写「零元」,前面也不补「零」;0.05 → 伍分,0.55 → 伍角伍分,0 → 零元整。「角」后补不补「整」各家不一,这里不补。
为什么 100 万零 1 只出现一个零? 汉语读数规则:夹在两个非零数位之间的连续 0 只读一次。1000001 拆成「壹佰万」和「壹」,中间的 0 合成一个「零」。
能把大写转回数字吗? 页面只做正向。第三栏「按位大写」逐字对应,肉眼能读回;金额栏要还原 拾佰仟/万亿/元角分整 的层级,解析比生成严得多,真要程序化请自己写校验。