跳到正文

罗马数字转换

Roman Numeral Converter

在罗马数字和阿拉伯数字之间互转,并校验减法记数写法是否合规。

把数字转成罗马数字、把罗马数字转回数字,并沿途检查写法。不规范的罗马数字仍然会被读出来而不是拒绝,附上一条说明哪里不对——IIII 出现在历来做过的钟面的一半上。

🔒 完全在你的浏览器里运行romanconvertnumber

方向

转换

数字

罗马数字

MMXXVI

这里执行的规则

  • I、X、C、M 最多重复三次。V、L、D 从不重复。
  • 只有 I、X、C 可以做减法,而且只能从紧邻的两个更大的值里减。
  • 所以 99 是 XCIX,不是 IC:I 只能从 V 和 X 里减。IC 只有在粗糙的解析器眼里才是 99,它并不是罗马数字。
  • 没有零,也没有负数。这套记数法两个符号都没有。
不标准的写法这里照样读,而不是直接拒绝,同时说明它哪里不对 — 世上做过的钟面有一半刻着 IIII,告诉人家他的钟是错的并没有什么用。

钟面

1 = I2 = II3 = III4 = IV(钟面:IIII)5 = V6 = VI7 = VII8 = VIII9 = IX10 = X11 = XI12 = XII

怎么用

  1. 选方向

    数字转罗马数字,或者罗马数字转数字。字母大小写都能读。

  2. 读规范写法

    对你输入的罗马数字,工具在旁边显示规范形式。你就是这样发现 IC 根本不是一个罗马数字的。

  3. 大数用上划线

    字母上方的一道横线把它乘以一千。超过 3,999,这是这套体系唯一的办法,这里用组合上划线字符来写。

常见问题

为什么 99 不是 IC?

只有 I、X 和 C 可以做减数,而且只能从往上两级以内的值里减。I 可以从 V 和 X 里减,所以 IC 根本不是一个罗马数字——它只是碰巧被一个粗心的解析器读成 99。99 是 XCIX。

IIII 错了吗?

它不规范,但到处的钟面上都有它——为了和对面的 VIII 保持平衡。工具把它读成 4 并说明它不规范,因为告诉别人他的钟无效没有用处。

零怎么写?

写不了。这套体系没有零的符号,也没有负数的符号。中世纪的抄写员不得不写的时候写 nulla,那是一个拉丁词,不是一个罗马数字。

可以从这些接进来

接下来

这些工具吃得下当前工具的产出,结果可以直接送过去。