罗马数字转换器,免费
在数字与罗马数字之间即时转换。
罗马数字参考
减法记法:IV=4、IX=9、XL=40、XC=90、CD=400、CM=900
较小的数字放在较大的数字之前表示减法。否则,从左到右相加数值。
如何使用此转换器
- 输入一个数字或罗马数字。在左边输入一个阿拉伯数字(1-3,999),或在右边输入一个罗马数字字符串,如 XIV 或 MMXXVI。
- 点击转换按钮。该工具双向转换:阿拉伯转罗马、罗马转阿拉伯。
- 使用结果。把转换后的值复制下来,用于章节标题、表盘设计、君主和教皇名号、版权年份、超级碗编号,或任何其他罗马数字仍在活跃使用的地方。
数字的来源:伊特鲁里亚的计数刻痕
罗马数字系统并不是从罗马人开始的。它是在改造之后,从公元前 8 世纪到公元前 3 世纪占据意大利半岛的伊特鲁里亚文明那里继承来的。伊特鲁里亚数字中至少有三个(𐌠、𐌡、𐌢)几乎原封不动地存活进罗马的字母集,成为 I、V 和 X。它们看起来源自带刻痕的计数木棒:以一条垂直刻线表示一,每数到第五道就以一个倒 V(或半个 X)打断计数,每数到第十道就以一个完整的 X。罗马人采纳并扩展了这套系统,并以混合古老伊特鲁里亚字符与后期拉丁语缩写的方式新增了 L(50)、C(100)、D(500)和 M(1000)。C 是 centum(百)的首字母;M 是 mille(千)的首字母;D 和 L 看起来更像是更早的伊特鲁里亚符号的图形后裔,而不是拉丁词的缩写。这七个标准字母(I、V、X、L、C、D、M)在罗马共和国晚期定形,此后两千年保持稳定。
减法记法被标准化的时间比人们以为的晚得多
一个常见误解是:罗马人总是把 4 写成 IV。他们并不这样做。加法形式在纪念碑上一直延续到近代。公元 80 年在提图斯治下完工的斗兽场闸门编号,在更长的数字中使用加法形式 IIII 而非 IV(例如 44 号闸门被刻成 XLIIII)。凯撒的高卢战记把十九写作 XVIIII,而不是 XIX。严格的减法标准(4 写 IV、9 写 IX、40 写 XL、90 写 XC、400 写 CD、900 写 CM)在中世纪期间逐渐出现,直到 15、16 世纪随着印刷术的传播才真正定型,印刷以手稿文化未曾有过的方式标准化了排版。即便今天,表盘也常用 IIII 表示四(所谓的「钟表匠的四」),以便与正对面的 VIII 在视觉重量上保持平衡。伦敦的大本钟则是个出名的例外,用现代的 IV,这一小小的「叛逆」被钟表迷们津津乐道。减法记法还有一条严格规则:只能用 10 的幂(I、X、C)从紧邻它的两级更大符号中减去,而且一次只能减一个数位。IV 表示 4 是对的,但 IIII 在很多古代场合也是合法的;IL(49)不合法:必须写 XLIX(50−10,然后 10−1)。IC(99)同样不合法;正确写法是 XCIX。这条限制是为了让解析没有歧义:任何合法的罗马数字都可以从左到右一次读完,每一对最多应用一次减法规则,无需回溯。
为什么没有罗马零,以及零是如何到达欧洲的
罗马数字没有表示零的符号。这套系统是按记号取值,而不是按位置取值:每个字符无论出现在字符串的哪里,权重都一样,所以空位置没什么可标记的。罗马抄写员要表示「数量不存在」时,会用单词 nulla(「没有」)。突破来自印度数学。布拉马古普塔 628 年的梵明满悉檀多是已知第一部赋予零位置值并列出与之相关的算术规则(a − a = 0、a + 0 = a、a × 0 = 0)的著作。印度系统迁入阿拉伯世界,由波斯数学家花拉子米在大约 820 年加以整理;他论文的拉丁译本 Algoritmi de numero Indorum(「花拉子米论印度计算之术」)把「算法」这个词(来自他名字的拉丁化)和这套新算术的工具一并带到了欧洲。最终通过列奥纳多·斐波那契 1202 年出版的Liber Abaci,这套系统抵达欧洲。斐波那契的父亲是一位往返北非贸易路线的意大利商人,他年轻时就习得了印度-阿拉伯数字,并用整本书来论证它们在商业、会计与数学上的优越性。采用过程缓慢。罗马数字在文艺复兴期间继续被修道院和学界使用(佛罗伦萨钱币兑换商行会在 1299 年的章程中禁止使用印度-阿拉伯数字,担心它们比基于字母的写法更易于篡改),印度-阿拉伯数字直到 16 世纪后期才在欧洲商业里完全占据主导。届时,距斐波那契已三个世纪,欧洲终于拥有了零、位置值,以及让现代科学得以成立的算术。
大数问题:vinculum 与 apostrophus
标准罗马数字止于 3,999(MMMCMXCIX)。要再大就需要从未真正标准化的扩展。vinculum 系统在字母上方加一道横线,使其乘以 1,000:V̄ 表示 5,000,X̄ 表示 10,000,L̄ 表示 50,000,C̄ 表示 100,000,M̄ 表示 1,000,000。一些罗马铭文在字母外围画一个三面方框(实际上是两道竖线加上 vinculum)来乘以 100,000,从而能表示几千万这样的数。apostrophus 系统在更古老的罗马手稿中使用,把 1,000 写作 CIↃ(常被渲染为 ↀ),5,000 写作 IↃↃ(ↁ),10,000 写作 CCIↃↃ(ↂ),并以左边加更多 C、右边加更多 Ↄ 的方式延续下去。这两套系统今天基本只是历史趣闻;现代用法在罗马记法用尽时就直接切换到印度-阿拉伯数字。本转换器和大多数现代工具一样,只接受标准的 1-3,999。
2026 年罗马数字仍在使用的场合
- 钟表表盘。许多传统钟表使用罗马数字标识小时,并在 4 号位置使用 IIII 而非 IV(所谓「钟表匠的四」)。这一惯例可追溯至中世纪欧洲制表,部分是出于美学(与正对面的 VIII 视觉平衡),部分是出于历史。大本钟是出名的例外,使用 IV。
- 书籍章节与序言。正文之前的内容(前言、序、导读)按惯例用小写罗马数字 i、ii、iii、iv 来编号,正文则从第 1 页开始转入阿拉伯数字。精装的法律和学术书籍仍遵循这一惯例。
- 君主与教皇。伊丽莎白二世、路易十四、亨利八世、教皇约翰·保罗二世、教皇方济各一世。在几乎所有西方君主制和天主教会中,同名君主或教皇的序号都用罗马数字。
- 超级碗。自第五届超级碗(1971 年)起,NFL 就用罗马数字为超级碗编号;这一惯例从非正式开始,1971 年被正式化。著名的例外是 2016 年 2 月的第 50 届超级碗,当时联盟在 logo 中放弃罗马的 L,因为单字母「L」在视觉上被认为不太协调;次年的 LI(51)届又恢复了罗马数字。
- 电影续集。《洛奇 II》(1979)、《星球大战:第九集》(2019)、《万圣节 III》到 VI、《十三号星期五第七集》。这一惯例并非普适(很多续集使用阿拉伯数字),但罗马形式仍是「这是该系列第 N 部」的可识别简写。
- 大纲格式。学术和法律大纲常使用 I、A、1、a、i 这样的层级,在罗马与阿拉伯、大写与小写之间交替,用以从视觉上区分嵌套深度。
- 电视片尾版权年份。版权行上的罗马数字(© MMXXIV BBC 等)让年份在第一眼下稍微更难读,这显然是电视早期的一个有意设计:让随便看一眼的观众不容易察觉一部重播节目究竟有多老。
罗马数字的 Unicode 码位
Unicode 在 Number Forms 区块(U+2160-U+2188)里为组合罗马数字提供了专用码位。示例:Ⅰ(U+2160)是罗马数字一,Ⅱ(U+2161)是二,Ⅹ(U+2169)是十,Ⅼ(U+216C)是五十,Ⅽ(U+216D)是一百,Ⅾ(U+216E)是五百,Ⅿ(U+216F)是一千。小写变体在 U+2170-U+217F(ⅰ、ⅱ、ⅲ、ⅳ……)。该区块还包括排版上独立的组合形式,比如 Ⅻ(U+216B,单字符的「十二」)和 Ⅼ(U+216C)。在大多数用途下,普通的 ASCII 字母 I、V、X、L、C、D、M 才是正确选择。它们更易携带、更容易输入,且在所有字体中都有支持。专用的 Unicode 码位在你需要排版精度(让表盘的 IIII 以单一字形显示,而不是四个 I 互相挤压)或周围环境是 CJK 或西里尔文本(在那里这些字形的尺寸与拉丁字母不同)时才有用。本转换器接受 ASCII 罗马输入并输出 ASCII;如果你需要 Unicode 码位,复制后再做查找替换。
转换器是怎么工作的:贪心减法
阿拉伯转罗马的标准算法是对一张数值表进行贪心减法。将数字按降序列出,把减法形式也作为独立条目:1000 = M、900 = CM、500 = D、400 = CD、100 = C、90 = XC、50 = L、40 = XL、10 = X、9 = IX、5 = V、4 = IV、1 = I。从上到下走列表:对每个条目,只要可能就从输入中减去其值,并把对应的字母附加到输出。2024 变为 M(剩 1024)M(剩 24)X(剩 14)X(剩 4)IV(剩 0)→ MMXXIV。该算法在输入大小上是 O(1)(固定走 13 个条目,每个最多重复三次),所以任何在范围内的输入都能在微秒级完成。反向(罗马转阿拉伯)则把输入字符串从左到右扫一遍,逐对比较:当前字母的值若小于下一个字母的值则减,否则加。MMXXIV = 1000 + 1000 + 10 + 10 + (5−1) = 2024。校验使用规范的正则 ^M{0,3}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$,它恰好接受 3,999 个合法形式,拒绝其他一切(这个模式里没有 IIII,没有 IL,也没有 VV)。
校验规则:哪些算作不合法
- I、V、X、L、C、D、M,七个标准符号(1、5、10、50、100、500、1000)
- 加法记法,VIII = 5+1+1+1 = 8
- 减法记法,IV = 5−1 = 4,IX = 10−1 = 9;只能用 10 的幂(I、X、C)作被减,且只能从紧邻它的两级更大符号里减,且每次只能减一个。IL 表示 49 不合法;要写 XLIX。
- 最大重复次数,I、X、C 和 M 最多连写 3 次(所以 4,000 没有标准形式,需要 vinculum)。V、L 和 D 在每一组里最多出现一次,VV 和 LL 都不合法(用 X 和 C 代替)。
- 范围,标准记法支持 1-3,999。罗马数字没有零、分数值或负数。
常见问题
这个工具能处理的最大罗马数字是多少?
3,999(MMMCMXCIX)。这是在不扩展记法的情况下能表示的最大值:M(最大的单个字母)最多重复三次得到 3,000,再加 CMXCIX 表示 999。要超过 3,999,需要 vinculum(字母上方的横线代表乘以 1,000)或 apostrophus 系统(CIↃ 表示 1,000 等),但二者在现代都没有广泛支持。对历史和装饰用途,3,999 已远远够用;对真正的数学计算,你本来就该使用阿拉伯数字。
IIII 表示 4 是否曾经正确?
在严格的现代记法中,不正确。标准形式是 IV。但在历史上 IIII 曾被广泛使用:斗兽场闸门编号、凯撒的Commentarii 以及许多中世纪手稿都使用过加法形式。今天,表盘还在使用 IIII 而不是 IV,以便与正对面的 VIII 视觉平衡,这就是著名的「钟表匠的四」。伦敦的大本钟是出名的例外,显示 IV。本转换器把 IV 作为现代标准接受并拒绝 IIII;如果你在设计表盘,需要 IIII,请手动写入。
为什么没有罗马数字表示零?
罗马的数文化把计数视为对实物的列举,而「没有可计数的实物」这种东西在物理上并不存在。罗马抄写员若要表示「数量不存在」,便用 nulla(「没有」)这个词。具有位置值的零作为一个数,源自印度数学;布拉马古普塔 628 年的梵明满悉檀多是已知第一部赋予其算术规则的著作。这套系统大约在 820 年通过花拉子米传入阿拉伯世界,又在 1202 年通过斐波那契的Liber Abaci 传到欧洲。采用过程缓慢;印度-阿拉伯数字直到 16 世纪末才在欧洲商业中占据主导。罗马数字始终没有获得零,因为等到欧洲真正需要零的时候,它已经在切换到一套完全不同的数字系统了。
为什么 IL 不能表示 49?
减法规则有严格约束:只能用 10 的幂(I、X、C)作被减,且只能从紧邻它的两级更大符号里减。所以 IV(5−1)和 IX(10−1)是 I 的合法减法;XL(50−10)和 XC(100−10)是 X 的;CD(500−100)和 CM(1000−100)是 C 的。IL 含义是 50−1,但 L 离得太远:你跨越了百倍的差距来减。正确写法 49 是 XLIX:50−10(XL),再 10−1(IX)。99 也一样:不是 IC,而是 XCIX。这条约束的存在是为了让解析无歧义,并让减法规则保持简单。
为什么第 50 届超级碗不是「Super Bowl L」?
2016 年 2 月 NFL 在第 50 届超级碗上切换到阿拉伯数字,正是因为联盟的营销部门觉得 logo 里出现一个孤零零的字母「L」视觉上显得别扭,并且更像是「loser」或「fail」的暗示,而非这场比赛所代表的里程碑意义。次年第 LI(51)届又恢复了罗马数字,并延续至今。这是「为了设计原因而非数学原因放弃罗马数字」最著名的现代例子。
阿波罗 11 号纪念牌使用了罗马数字吗?
没有。月面纪念牌上写的是阿拉伯数字「JULY 1969 A.D.」。但它确实和罗马数字有一点关系:任务徽章的早期草图本来用「XI」作为任务编号,是尼尔·阿姆斯特朗要求把徽章改成阿拉伯的「11」,理由是这样对全球的非英语使用者来说更易读。实际飞行的任务徽章使用的就是阿拉伯「11」。整个阿波罗计划在任务编号上更普遍地使用阿拉伯数字(Apollo 1、Apollo 7-17),把罗马数字保留给礼仪或装饰性用途。阿波罗时代对阿拉伯数字的总体偏好,正反映了过去一个世纪把罗马数字逐渐挤出实际用途的那条可读性论证。
我的数字会被发送到任何地方吗?
不会。转换完全通过一小段 JavaScript 表查找在你的浏览器中完成。你输入的数字从不离开本机。可以在点击「转换」时观察 DevTools 的 Network 标签确认,或在页面加载之后断网,转换器依然可以正常工作。