罗马数字转换器
在阿拉伯数字与罗马数字之间双向转换:输入数字得到罗马写法,或输入罗马数字还原为数字,两边实时联动,并附基本符号对照表。
钟表盘面、电影版权年份、章节编号、元素周期表族号——罗马数字至今仍在正式场合使用。本工具双向转换:输入数字得罗马写法(如 2026 → MMXXVI),输入罗马数字还原为数字,两边实时联动,附基本符号对照表。
规则边界:标准罗马数字用减法记法(IV 表示 4、IX 表示 9),最大只能表示 3999(MMMCMXCIX)——更大的数需要加横线乘千的记法,本工具按标准记法处理 1~3999;输入非法组合(如IIII、VX)会明确报错而不是猜一个结果。
这个工具解决你的问题了吗?
提交后会把工具名、你的输入与当前结果发送到服务器;请勿填写身份证号、手机号等隐私信息。
AI 助手 会结合你当前的输入与结果回答
追问会再次把当前输入与结果发送到服务器;请勿填写隐私信息。
使用步骤
- 输入数字(1~3999)或罗马数字,另一侧实时联动。
- 看符号对照表:I V X L C D M 对应 1 5 10 50 100 500 1000。
- 减法记法:小值在大值左侧作减(IV=4、CM=900)。
- 复制结果;超出 3999 的年份需用带横线记法,本工具不处理。
计算原理与示例
怎么使用
在任意一个输入框里输入内容,另一个会自动更新:左边填阿拉伯数字(1~3999),右边填罗马数字,例如 2026 对应 MMXXVI。
基本符号与减法规则
七个基本符号是 I = 1、V = 5、X = 10、L = 50、C = 100、D = 500、M = 1000。小符号写在大符号左边表示相减,只允许 IV(4)、IX(9)、XL(40)、XC(90)、CD(400)、CM(900) 六种组合。
为什么只支持到 3999
标准罗马数字没有表示 4000 及以上数值的符号,古代用符号上方加横线表示乘 1000(如 V̄ = 5000)。本工具不支持上划线记法,因此范围限定在 1~3999,超出会提示范围错误。
输入非标准写法会怎样
反向解析只接受标准写法:输入 IIII、VV、IC 这类不符合规则的组合会提示写法错误,并给出正确形式(IIII 应写 IV)。这样能帮你发现抄录错误,而不是默默返回一个数值。
代码示例
JavaScript 标准转换:查表贪心
const TABLE = [[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"]];
function toRoman(n) {
let s = "";
for (const [v, r] of TABLE) while (n >= v) { s += r; n -= v; }
return s;
}
toRoman(2026); // "MMXXVI"
toRoman(3999); // "MMMCMXCIX"(标准记法上限)
Python 罗马 → 数字:左减右加
VAL = {"I":1,"V":5,"X":10,"L":50,"C":100,"D":500,"M":1000}
def to_int(s):
total = 0
for i, ch in enumerate(s):
v = VAL[ch]
if i + 1 < len(s) and v < VAL[s[i + 1]]:
total -= v # 小值在大值左侧作减
else:
total += v
return total
to_int("MMXXVI") # 2026
to_int("MCMXCIV") # 1994
常见问题
罗马数字最大能表示多少?
使用标准符号(不使用上划线乘 1000 的写法)时最大是 3999,记作 MMMCMXCIX。更大的数值在古罗马通过在上方加横线表示乘以 1000,这类记法无法用纯文本表达,所以本工具的范围是 1~3999。
为什么 4 要写成 IV 而不是 IIII?
这是「减法记法」规则:同一个符号最多连写三次,第四次改用「小符号在大符号左边」表示相减,所以 4 写 IV、9 写 IX。允许的减法组合只有六种:IV、IX、XL、XC、CD、CM,像 IC 表示 99 是不允许的。
输入 IIII 会怎样?
会提示写法错误,并说明正确形式是 IV。虽然钟表表盘上确实常把 4 点写作 IIII,但那属于制表业的视觉传统(让 IIII 与 VIII 在表盘上左右对称),不是数学上的标准记法,本工具按标准记法处理。
IX 和 XI 容易混淆,怎么区分?
看小符号在大符号的哪一侧:写在左边表示相减,写在右边表示相加。所以 IX = 10 − 1 = 9,XI = 10 + 1 = 11;同理 IV = 4 而 VI = 6,XL = 40 而 LX = 60。
罗马数字里有 0 吗?
没有。古罗马的数字系统不使用 0,也没有表示 0 的符号,这与它主要服务于计数和记账有关。因此本工具不接受 0 输入,会提示超出范围。
怎么用罗马数字表示年份?
把四位年份拆成各位后按规则书写即可,例如 2026 = 2000 + 20 + 6 = MM + XX + VI = MMXXVI。常见版权页上的 MMXXV 就是 2025 年,MMXXVI 是 2026 年。
小写罗马数字能识别吗?
可以,输入会自动转成大写再解析,mcmxc 与 MCMXC 得到的结果相同。空格与中英文逗号也会被忽略,方便直接粘贴从文档里复制的内容。
这个转换需要联网吗?
不需要。转换表与规则都写在页面的本地脚本里,断网也能正常使用,输入内容不会离开你的浏览器,也不会被记录到任何服务器。
延伸阅读
来自本站原创文章,讲清这个工具背后的算法与口径。