罗马数字转换器
支持将普通数字、日期、分数转换成罗马数字,并同时支持反向转换。请阅读下方说明,了解该转换器如何运作。
转换器如何运作?
在左方面板输入一个数字。如果你输入的是阿拉伯数字(例如,22),并且你想要将它转换成罗马数字,你需要点击“转换成罗马数字”按钮。如果你输入的是罗马数字(例如,XIX),点击“转换成阿拉伯数字”按钮即可将其转换成阿拉伯数字。
如果你不清楚转换器是怎么运作的,想要看看一些示例,可以点击下方的按钮,在我们的三个示例中进行选择。点击后,数据会展示在左侧面板。每个示例都包含有阿拉伯数字和罗马数字,你可以进行双向测试,看看对应的数字部分是如何转换的。我们也建议你继续阅读本页面,了解转换的原理。
罗马数字的表示方式
基本罗马数字
罗马数字由几个大写的拉丁字母组成,包括 I、V、X、L、C、D 和 M。每个字母都代表一个固定的数值,具体对应关系见下表。
| I | 1 |
| V | 5 |
| X | 10 |
| L | 50 |
| C | 100 |
| D | 500 |
| M | 1000 |
要写罗马数字,就要将这些字母组合在一起,将它们所代表的数值相加后得到目标数字。例如,如果你想要写罗马数字56,那么你需要使用L(代表50),V(代表5),以及 I(代表1)组成数字 LVI(即50 + 5 + 1 = 56)。有时候,你需要重复使用同一个字母。例如,23对应的罗马数字是 XXIII,因为每个 X 代表的是10,而每个 I 代表的是1,最终我们需要两个 X 和三个 I(XXIII = X + X + I + I + I = 10 + 10 + 1 + 1 + 1 = 23)。不过,同一个字母最多只能连续出现三次。在不重复一个字母四次的情况下,你应该将这个字母放在更高数值的字母前面,这样就表示相减,而不是相加。例如,934对应的罗马数字是 CMXXXIV:C 放在M的前面就表示我们要从1000中减去100,得到900。XXX 表示3个10,而 I 放在 V 的前面就表示我们需要从5中减去1,得到4。所以,最后我们得到900 + 30 + 4 = 934。需要注意的是,只有特定的组合才允许相减:I 只能放在V或X前,X 只能放在 L 或 C 前,C 只能放在 D 或 M 前,因此不能用 VC 表示95,95的正确写法是 XCV。最后,除了这些减法规则外,罗马数字中的符号必须按数值从大到小、从左到右排列,所以551不能写成 LID,按正确的顺序应该写作 DLI(因为 D > L > I,就是说500 > 50 > 1)。下方表格列出了一些基本罗马数字的示例,供参考。
| I | 1 |
| II | 2 |
| III | 3 |
| IV | 4 |
| V | 5 |
| VI | 6 |
| VII | 7 |
| VIII | 8 |
| IX | 9 |
| X | 10 |
| XI | 11 |
| XII | 12 |
| XIII | 13 |
| XIV | 14 |
| XV | 15 |
| XVI | 16 |
| XVII | 17 |
| XVIII | 18 |
| XIX | 19 |
| XX | 20 |
| XXI | 21 |
| XXII | 22 |
| XXIII | 23 |
| XXIV | 24 |
| XXV | 25 |
| XXVI | 26 |
| XXVII | 27 |
| XXVIII | 28 |
| XXIX | 29 |
| XXX | 30 |
| XL | 40 |
| L | 50 |
| LX | 60 |
| LXX | 70 |
| LXXX | 80 |
| XC | 90 |
| C | 100 |
| CXXI | 121 |
| CXLIV | 144 |
| CLXIX | 169 |
| CXCVI | 196 |
| CCXXV | 225 |
| CCLVI | 256 |
| CDLXXVI | 476 |
| DCXXII | 622 |
| MCDXCII | 1492 |
| MDCCLXXXIX | 1789 |
| MCMXXXIX | 1939 |
| MCMXCI | 1991 |
| MMXIX | 2019 |
在某些情况下,可能会看到同一个字母连续使用四次。例如,在一些老式钟表上,数字4可能会写成 IIII,而不是 IV;或者,40有时也会写成 XXXX,而不是 XL。有些创作者会采用这种写法,但这种表示方式并不常见。虽然本转换器可以识别并理解这种写法,但并不推荐使用这种方式。
有时你也可能会看到使用小写字母书写的罗马数字,例如用 vi 表示6,或用 xiii 表示13。不过,目前本转换器无法识别小写字母,因此在进行转换之前,需要先将这些字母改为大写形式。
大于1000的罗马数字
罗马数字的写法多种多样,其形式在历史上不断演变,不仅在古罗马时期演变,在中世纪欧洲也持续演变——在此这些数字甚至在罗马帝国灭亡之后仍然在使用。大数的写法也是如此,目前已知有几种不同的表示方式。其中较为常见的一种方式,是在字母上方加一条横线,用以表示该字母的数值乘以1000。例如,既然 VI 表示6, VI 就表示6,000。这种方法可以用于任意自然数,例如 CMXXXIV 表示934,000。带横线和不带横线的字母也可以混合使用,例如 LXVDXXXVI 表示65,536。此外,虽然在传统的书写方式中,4,000以下的数字通常使用 M 来表示千位,但将2019写成 IIXIX 并不算错误的写法(不过更推荐写作 MMXIX)。下方列出了一些用罗马数字表示大数的示例。如果你想要在转换器中输入这类数字,你无法直接输入横线,但可以使用方括号将相应字母括起来,具体写法可参考最后一列的说明。
| 阿拉伯数字 | 罗马数字 | 转换器输入或者输出形式 |
|---|---|---|
| 24,901 | XXIVCMI | [XXIV]CMI |
| 40,075 | XLLXXV | [XL]LXXV |
| 238,900 | CCXXXVIIICM | [CCXXXVIII]CM |
| 299,792 | CCXCIXDCCXCII | [CCXCIX]DCCXCII |
| 384,400 | CCCLXXXIVCD | [CCCLXXXIV]CD |
| 1,048,576 | MXLVIIIDLXXVI | [MXLVIII]DLXXVI |
| 4,999,999 | MMMMCMXCIXCMXCIX | [MMMMCMXCIX]CMXCIX |
采用这种方式能书写的最大数字就是 MMMMCMXCIXCMXCIX,即4,999,999。受上述规则限制,无法写出更大的数字。
罗马数字分数
罗马数字分数的表示方式与自然数类似:要写出一个分数,需要按数值从大到小排布各个符号,使它们相加后得到所要表示的数值。用于表示分数的符号共有14个,具体符号请见下表。
| 拉丁名称 | 意思 | 有理分式 | 十进制近似值 | 实际字符 | 视觉近似字符 | 键盘友好 |
|---|---|---|---|---|---|---|
| semis | 二分之一 | 1/2 | 0.50000 | S | S | S |
| quincunx | 五盎司 | 5/12 | 0.41667 | 𐆐𐆐𐆑 | ⁙ | ..... |
| triens | 三分之一 | 4/12 = 1/3 | 0.33333 | 𐆐𐆐 | ∷ | .... |
| quadrans | 四分之一 | 3/12 = 1/4 | 0.25000 | 𐆐𐆑 | ∴ | ... |
| sextans | 六分之一 | 2/12 = 1/6 | 0.16667 | 𐆐 | : | .. |
| sescuncia | 1.5盎司 | 1/8 | 0.12500 | 𐆒𐆑 | Є· | E. |
| uncia | 盎司 | 1/12 | 0.08333 | 𐆑 | · | . |
| semuncia | 半盎司 | 1/24 | 0.04167 | 𐆒 | Є | E |
| binae sextulae | 两 sextula | 1/36 = 1/72 + 1/72 | 0.02778 | 𐆓𐆓 | ƧƧ | ZZ |
| sicilicus | 镰形 | 1/48 | 0.02083 | 𐅀 | Ɔ | O |
| sextula | 六分之一盎司 | 1/72 = 1/6 × 1/12 | 0.01389 | 𐆓 | Ƨ | Z |
| dimidia sextula | 半 sextula | 1/144 = 1/2 × 1/72 | 0.00694 | 𐆔 | ₴ | A |
| scripulum | 小石 | 1/288 | 0.00347 | ℈ | Э | P |
| siliqua | 谷粒 | 1/1728 | 0.00058 | 𐆕 | » | Q |
只有 uncia 和 siliqua 这两个符号可以重复使用,且最多各可重复5次。其他符号不能重复,除非它们在上表中本身就是以重复形式出现的(例如两个 sextula 组成的 binae sextulae)。
如你所见,使用罗马分数所能达到的最高精度是1/1728。此外,这套分数体系是以数字12为基础的,因此,许多在现代十进制体系中可以轻松表示的分数,无法准确地写成罗马分数。例如,0.1(或1/10)可以写作 uncia + sextula + 5 × siliqua 即1/12 + 1/72 + 5 × 1/1728 = 173/1728 ≈ 0.10012。在大多数情况下,罗马分数只能表示一个近似值,无法表示你要展示的数字的精确值。下方表格展示了几个示例,最后一列给出了罗马分数对应的精确数值计算结果,并以十进制形式表示,便于与第一、第二列中的原始数值进行对比。
| 有理分式 | 十进制近似值 | 罗马数字(视觉近似字符) | 计算 |
|---|---|---|---|
| 1/2 | 0.5 | S | 1/2 = 0.5 |
| 1/3 | 0.33333 | ∷ | 1/3 ≈ 0.33333 |
| 1/4 | 0.25 | ∴ | 1/4 = 0.25 |
| 1/10 | 0.1 | ·Ƨ»»»»» | 1/12 + 1/72 + 5/1728 = 173/1728 ≈ 0.10012 |
| 1/5 | 0.2 | :ƧƧЭ»»»» | 1/6 + 1/36 + 1/288 + 4/1728 = 173/864 ≈ 0.20023 |
| 3/10 | 0.3 | ∴Є₴»» | 1/4 + 1/24 + 1/144 + 2/1728 = 259/864 ≈ 0.29977 |
| 1/7 | 0.14286 | Є·ƧЭ» | 1/8 + 1/72 + 1/288 + 1/1728 = 247/1728 ≈ 0.14294 |
| 12345/100000 | 0.12345 | ·ƧƧ₴Э»»» | 1/12 + 1/36 + 1/144 + 1/288 + 3/1728 = 71/576 ≈ 0.12326 |
| 99/100 | 0.99 | S⁙ЄƧƧЭ» | 1/2 + 5/12 + 1/24 + 1/36 + 1/288 + 1/1728 = 1711/1728 ≈ 0.99016 |
| 999/1000 | 0.999 | S⁙ЄƧƧ₴Э»»»» | 1/2 + 5/12 + 1/24 + 1/36 + 1/144 + 1/288 + 4/1728 = 863/864 ≈ 0.99884 |
| 9999/10000 | 0.9999 | I | 1 |
| 314/100 | 3.14 | IIIЄ·Ƨ»» | 3 + 1/8 + 1/72 + 2/1728 = 3 121/864 ≈ 3.14005 |
| 31415/10000 | 3.1415 | IIIЄ·Ƨ»»»»» | 3 + 1/8 + 1/72 + 5/1728 = 3 245/1728 ≈ 3.14178 |
本转换器在读取和输出罗马分数时,使用三套不同的符号系统。“实际字符”是指 David J. Perry 在 Unicode 的古典拉丁字符相关文档中所定义的符号 (Unicode 是一种用于在计算机及其他电子设备上显示字符的标准)。这些符号可以视为规范字符,也就是说,它们与相应的罗马分数具有明确对应的含义,并且基于历史上实际使用过的罗马分数字符设计。但是,由于这些字符相对冷门,有些字符可能在现代计算机上无法显示。因此,当你选了“实际字符”时,可能会看到空白方块或其他占位符,无法见到正确的图形符号。在这种情况下,我们建议改用“视觉近似”字符集,该字符集包含了大多数现代系统都支持的符号,虽然这些符号原本的含义可能与这些罗马分数不同,但它们在外观上与罗马分数字符相似(例如,用乌克兰货币 格里夫纳 的符号来表示 dimidia sextula)。不过,无论是“实际字符”还是“视觉近似字符”,其中的符号都不便于通过键盘直接输入。因此,转换器还提供了第三种选项:“键盘友好”字符集。如果你是通过键盘输入罗马分数(只要能够输入拉丁字母就没问题),这种方式会更加方便。
罗马数字的分数可以与自然数组合使用。做法是将分数部分直接写在自然数之后。例如,在选用“视觉近似字符”后,3.14可以写作 IIIЄ·Ƨ»»。
罗马数字“零”
几乎没有证据表明古罗马人使用过“零”。到了中世纪,学者们开始用不同方式来表示0,其中一种做法是使用字母 N。本转换器也采用了这种方式表示“零”。
阿拉伯数字
阿拉伯数字需要满足以下几个条件,才能让转换器正确识别出来:
- 你不可以使用逗号来分隔千位数字。这几个数字必须连续书写,不可以加入任何符号来分隔它们。例如,在写三千的时候,你应该输入3000,而不是3,000。
- 转换器会试着读取你在系统设置中设置的小数分隔符(通常是小数点)。你也可以根据需要将其更改为其他符号。请确保设置中填写的小数分隔符与要转换的数字中所书写的分隔符一致。
- 如果使用小于1的十进制分数,数字必须以0开头。也就是说,0.25能被识别成为一个分数(四分之一),而.25则会被理解成一个点后面跟着整数25。
- 你也可以输入有理分式。做法是先输入自然数部分,并用空格将其与分数部分分隔;分数需在分子后输入“/”,再输入分母。例如,输入3 7/50时,转换器会理解成3.14。也可以不输入自然数部分,例如输入3/4,转换器会理解成0.75。
你可以禁用阿拉伯数字的分数功能。默认情况下,转换器会采用有理分式(因为其精度更高),因此当两种分数形式同时启用时,转换器会优先生成有理分式。如果你更偏好十进制分数,则需要禁用有理分式,这样转换器就会改为生成十进制分数。如果两种分数形式都被禁用,转换器会将分数视为多个独立的自然数。这种方式在某些情况下会更合适,例如在转换日期时(见下文)。
转换器功能与特色
说明
转换器会在“说明”区域展示计算过程。同时,还会将有理分式对应的十进制近似值一并展示,方便你直观比较转换后罗马分数与阿拉伯分数之间的差值。此外,“说明”中还会提供转换过程中遇到的任何问题信息。如果某个数字无法被转换,它将以原始的形式保留在输出框中,具体原因则会在“说明”区域中给出。
转换日期
如果你需要转换那些使用斜杠表示的日期,应当禁用有理分式。例如,在启用有理分式的情况下,将12/6/10从阿拉伯数字转换为罗马数字时,12/6会被当作第一个分数数字,而10会被视为一个单独的自然数,因此结果会是 II/X。如果禁用有理分式,转换结果则会是 XII/VI/X。
同样地,在日期中使用小数分隔符也可能产生意想不到的结果。例如,如果将小数分隔符设置为小数点,并在启用十进制分数的情况下尝试把2019.03.11从阿拉伯数字转换为罗马数字,那么2019.03会被当作第一个数字,而11会被当作第二个数字,并由小数点分隔。这么做之后,最终结果会变成 MMXIXƧƧ»»»».XI(在选择 “视觉近似字符”的情况下)。禁用十进制分数后,才能得到期望的结果:MMXIX.III.XI。
转换多个数字
通常情况下,你可以在输入框中输入任意文本。转换器会在文本中搜寻数字并尝试转换这些数字,而其余内容则保持不变。采用这种方式,你就可以一次性转换多个数字,例如,你可以将每个数字放在单独的一行中输入。
不过,在某些情况下可能会出现意想不到的结果,特别是在将罗马数字转换为阿拉伯数字的时候。如果你的文本中将用于表示罗马数字的符号用于其他用途,就可能发生这种情况。例如,每一个大写字母I都可能被转换为数字1。如果选择了“键盘友好”,点状符号也可能会被转换为分数。
选项
转换器提供了一些设置选择,你可以借此自定义转换过程。其中大多数设置已在前文中介绍过。若要查看可用的选项,请点击页面顶部、输入框和输出框下方的“显示选项”按钮;再次点击该按钮即可隐藏选项。
“罗马数字分数”这一组选项用于决定转换器在读取和输出罗马分数时应使用哪一套字符。关于罗马分数的表示方式以及可用符号的详细说明,可参见上方的“罗马数字分数”部分。
“阿拉伯数字分数”这一组选项允许你设置三项内容:是否让转换器读取和输出有理数分数,是否允许使用十进制分数,以及所使用的小数分隔符是什么。有关这些选项的更多说明,可参见上方的 “阿拉伯数字” 部分。
反馈
如果你发现了一个错误,或有改进我们转换器的建议,欢迎随时联系我们。点击“留下反馈”按钮即可显示反馈意见表。你可以在页面前方、输入框和输出框下方找到该按钮;再次点击该按钮即可隐藏反馈意见表。
在反馈意见表中,你可以附加你当前的输入和输出数据。如果你在输出结果中发现了某种错误,建议勾选该选项,这样我们就能够充分了解具体的情况。请在“你的反馈意见”栏中说明你遇到的问题,勾选“附加转换器数据”,然后点击“提交”按钮。感谢你的配合!凯撒大帝一定会为此感到骄傲。