单位换算 本地计算 开箱即用 内置示例 不留痕迹

罗马数字转换器

在阿拉伯数字与罗马数字之间双向转换:输入数字得到罗马写法,或输入罗马数字还原为数字,两边实时联动,并附基本符号对照表。

钟表盘面、电影版权年份、章节编号、元素周期表族号——罗马数字至今仍在正式场合使用。本工具双向转换:输入数字得罗马写法(如 2026 → MMXXVI),输入罗马数字还原为数字,两边实时联动,附基本符号对照表。

规则边界:标准罗马数字用减法记法(IV 表示 4、IX 表示 9),最大只能表示 3999(MMMCMXCIX)——更大的数需要加横线乘千的记法,本工具按标准记法处理 1~3999;输入非法组合(如IIII、VX)会明确报错而不是猜一个结果。

      使用步骤

      1. 输入数字(1~3999)或罗马数字,另一侧实时联动。
      2. 看符号对照表:I V X L C D M 对应 1 5 10 50 100 500 1000。
      3. 减法记法:小值在大值左侧作减(IV=4、CM=900)。
      4. 复制结果;超出 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 得到的结果相同。空格与中英文逗号也会被忽略,方便直接粘贴从文档里复制的内容。

      这个转换需要联网吗?

      不需要。转换表与规则都写在页面的本地脚本里,断网也能正常使用,输入内容不会离开你的浏览器,也不会被记录到任何服务器。

      延伸阅读

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