生活健康 本地计算 开箱即用 内置示例 不留痕迹

人民币大写转换器

输入数字金额立即转换为符合票据规范的中文大写(壹贰叁肆伍陆柒捌玖拾佰仟万亿),自动处理「零」的读法、整与角分、拾位补壹等规则,支持到万亿级。

写支票、开发票、签合同,金额必须用中文大写(壹贰叁肆伍陆柒捌玖拾佰仟万亿)——大写规则比想象的多:「零」的读法(1002 是壹仟零贰不是壹仟零零贰)、整与角分(1200 元整、1.5 元壹元伍角)、拾位补壹(15 元是壹拾伍元不是拾伍元)。本工具自动处理全部规则,支持到万亿级。

规范依据:按中国人民银行支付结算办法的票据规范处理——「零」连续出现只读一个、角后无分加「整」、金额到「元」为止加「整」;「贰」与「两」统一用「贰」(票据规范);本工具输出可直接用于票据填写。

使用步骤

  1. 输入数字金额(支持小数到分)。
  2. 看中文大写结果,注意「零」「整」「壹拾」的处理。
  3. 核对角分:无角有分、有角无分(加整)、角分全无(加整)。
  4. 复制结果直接用于票据;万亿级以内精确支持。

计算原理与示例

数字与汉字的基本对应

基本对应:0~9 依次为零壹贰叁肆伍陆柒捌玖,数位为拾、佰、仟、万、亿。例如 1234.56 → 壹仟贰佰叁拾肆圆伍角陆分。

「零」的读法规则

「零」的读法:中间连续多个零只写一个「零」,段末的零不写。例如 6000007 → 陆佰万零柒圆整。

票据金额大写规范

票据规则:角分位为 0 时以「整」收尾;10 元写作「壹拾圆」而非「拾圆」,防止前面添改数字。

代码示例

JavaScript 大写转换核心:四位一组

const DIG = "零壹贰叁肆伍陆柒捌玖";
const UNIT = ["", "拾", "佰", "仟"];
const GROUP = ["", "万", "亿", "万亿"];

function read4(n) {                    // 读 0~9999
  let s = "", zero = false;
  for (let i = 3; i >= 0; i--) {
    const d = Math.floor(n / 10 ** i) % 10;
    if (d === 0) { zero = s.length > 0; continue; }
    s += (zero ? "零" : "") + DIG[d] + UNIT[i];
    zero = false;
  }
  return s;
}
read4(1002);   // "壹仟零贰"

Python 同思路的 Python 版

DIG = "零壹贰叁肆伍陆柒捌玖"
UNIT = ["", "拾", "佰", "仟"]

def read4(n):
    s, zero = "", False
    for i in range(3, -1, -1):
        d = n // 10 ** i % 10
        if d == 0:
            zero = bool(s)
            continue
        s += ("零" if zero else "") + DIG[d] + UNIT[i]
        zero = False
    return s

read4(1002)   # "壹仟零贰"
# 完整实现还需:万亿分组、角分处理、拾位补壹、整字规则

常见问题

「圆」和「元」用哪个?

票据规范推荐「圆」(如壹佰圆整),日常也可写「元」。本工具按票据规范输出「圆」。

最大支持多大金额?

支持 16 位以内(万亿级)。超过 JS 安全精度会提示金额过大,建议分笔填写。

为什么 10 元是「壹拾圆」?

票据防涂改规范要求拾位补「壹」:单独的「拾」前面容易被添字改数,写「壹拾」更安全。

转账支票和发票上的金额大写怎么写?

用「壹贰叁肆伍陆柒捌玖拾佰仟万亿」配合「圆角分」:如 1234.56 写作「壹仟贰佰叁拾肆圆伍角陆分」。金额到元为止时规范写法要加「整」(如 100 → 壹佰圆整);有角无分时,分位写「零」或按银行要求处理。

中间有 0 的时候大写怎么处理?

连续的 0 只读一个「零」,且万位、亿位等节点后的 0 不单独读。例如 10005 写作「壹万零伍圆」,100000005 写作「壹亿零伍圆」。这是票据审核最容易出错的地方,生成后建议再核对一遍。

大写金额写错了能改吗?

不能。票据和凭证上的大写金额一经填写不得涂改,写错应当作废重开。这正是建议先用工具生成、再照着誊写的原因——能避免手工写错导致单据无效。

中文大写的「万」「亿」和阿拉伯数字怎么对应?

中文按四位一级:万是 10^4,亿是 10^8,亿以上就是「万亿」(10^12)。所以 1 亿 = 10000 万 = 10^8,1 万亿 = 10^12。书写时按「个、万、亿」分级读,就不容易漏位。

延伸阅读

来自本站原创文章,讲清这个工具背后的算法与口径。