数字转中文与中文转数字
把 1234.56 写成「一千二百三十四点五六」或「壹仟贰佰叁拾肆点伍陆」,反过来把中文数字还原成阿拉伯数字也可以。
支持千分位逗号、全角数字和负号。整数最多 16 位,小数最多 8 位。
结果
一千二百三十四点五六
大小写对照
小写(一二三):日常书写和合同里的普通数字写法,10 到 19 读作十、十二;大写(壹贰叁):票据和大写金额的写法,防止涂改,10 到 19 写作壹拾、壹拾贰。
| 阿拉伯数字 | 小写 | 大写 |
|---|---|---|
| 10 | 十 | 壹拾 |
| 12 | 十二 | 壹拾贰 |
| 105 | 一百零五 | 壹佰零伍 |
| 110 | 一百一十 | 壹佰壹拾 |
| 1001 | 一千零一 | 壹仟零壹 |
| 10001 | 一万零一 | 壹万零壹 |
| 1000001 | 一百万零一 | 壹佰万零壹 |
| 1234567890 | 十二亿三千四百五十六万七千八百九十 | 壹拾贰亿叁仟肆佰伍拾陆万柒仟捌佰玖拾 |
位值单位
| 单位 | 数值 | 读法 |
|---|---|---|
| 万 | 10,000 | 10 的 4 次方 |
| 亿 | 100,000,000 | 10 的 8 次方 |
| 万亿(兆) | 1,000,000,000,000 | 10 的 12 次方 |
万位以上每四位一级:万、亿、万亿。再往上没有通行的单位,所以整数最多支持 16 位。
零怎么读
中文数字里最麻烦的是零。规则可以归纳成三类:位与位之间有空缺时读一个零,比如 105 是一百零五、1001 是一千零一;连续多位空缺只读一个零,比如 10001 是一万零一,不是一万零零零一;末尾的零一律不读,比如 1200 是一千二百,不读「一千二百零零」。
四位一级之间的零要特别注意:1000001 是一百万零一,中间那一组 0000 只贡献一个零;而 1000000 是一百万,末尾的零不读。这也是为什么从数字直接读中文容易出错,位值和零要一起看。
十和一十
小写习惯把开头的「一十」写成「十」:10 读「十」,12 读「十二」;但出现在中间时不省略,110 读「一百一十」。大写没有这个省略,票据上一律写「壹拾」「壹拾贰」,位数看得更清楚,也更难涂改。这也是大写金额要写成「壹佰贰拾叁元整」的原因。
和人民币大写的区别
这里处理的是数字本身,不涉及货币。票据和发票上的金额写法还有额外规范:要用「元」「角」「分」,整数金额补「整」,元位是零、角位不是零时不补那个可写可不写的零。这些规则在「人民币大写」页里单独处理,需要填金额的场合用那一页。
反过来读要注意什么
中文数字转阿拉伯数字的歧义主要来自口语省略。「一万二」口语指 12000,「一万零二」才是 10002,本页按前者处理;「三千五」是 3500,「五百二十」是 520。逐位读法(常见于年份和电话号码)也认,二〇二六会还原成 2026。如果原文本身有歧义,最好补一个零再转。
位数超过 16 位的整数已经超出双精度浮点数的精确范围,本页会直接提示而不是给一个末尾数字不对的结果。真要处理更大的数,得用专门的大数库。