罗马数字转换:1-3999
时钟表盘、书籍章节、电影版权年份——罗马数字仍常见。本文详解罗马数字与阿拉伯数字互转。
什么是罗马数字?
罗马数字是古罗马使用的数字系统:
1 → I
5 → V
10 → X
50 → L
100 → C
500 → D
1000 → M
罗马数字规则
基本符号
| 符号 | 值 |
| I | 1 |
| V | 5 |
| X | 10 |
| L | 50 |
| C | 100 |
| D | 500 |
| M | 1000 |
规则
#### 1. 加法
相同或从大到小的符号从左到右排列,值相加:
VI = 5 + 1 = 6
XV = 10 + 5 = 15
LVIII = 50 + 5 + 1 + 1 + 1 = 58
#### 2. 减法
小符号在大符号前表示减:
IV = 5 - 1 = 4
IX = 10 - 1 = 9
XL = 50 - 10 = 40
XC = 100 - 10 = 90
CD = 500 - 100 = 400
CM = 1000 - 100 = 900
#### 3. 重复限制
- I、X、C、M 可重复最多 3 次
- V、L、D 不重复
III = 3 ✓
IIII = 4 ✗(应该用 IV)
VV = 10 ✗(应该用 X)
#### 4. 减法限制
只能减 1 个数量级:
IV = 4 ✓
IX = 9 ✓
IC = 99 ✗(应该用 XCIX)
减法只能:
- I 在 V、X 前
- X 在 L、C 前
- C 在 D、M 前
常见数字对照
1-20
| 数字 | 罗马 | 数字 | 罗马 |
| 1 | I | 11 | XI |
| 2 | II | 12 | XII |
| 3 | III | 13 | XIII |
| 4 | IV | 14 | XIV |
| 5 | V | 15 | XV |
| 6 | VI | 16 | XVI |
| 7 | VII | 17 | XVII |
| 8 | VIII | 18 | XVIII |
| 9 | IX | 19 | XIX |
| 10 | X | 20 | XX |
十位
| 数字 | 罗马 |
| 10 | X |
| 20 | XX |
| 30 | XXX |
| 40 | XL |
| 50 | L |
| 60 | LX |
| 70 | LXX |
| 80 | LXXX |
| 90 | XC |
| 100 | C |
百位
| 数字 | 罗马 |
| 100 | C |
| 200 | CC |
| 300 | CCC |
| 400 | CD |
| 500 | D |
| 600 | DC |
| 700 | DCC |
| 800 | DCCC |
| 900 | CM |
| 1000 | M |
整年
| 年份 | 罗马 |
| 1990 | MCMXC |
| 2000 | MM |
| 2024 | MMXXIV |
| 2026 | MMXXVI |
| 3999 | MMMCMXCIX |
52tool 罗马数字转换
工具地址:Unicode 工具(含罗马数字)
功能
- 阿拉伯数字 → 罗马
- 罗马 → 阿拉伯数字
- 1-3999 范围
- 浏览器端处理
实战 1:数字转罗马
输入:
2026
输出:
MMXXVI
实战 2:罗马转数字
输入:
MCMXC
输出:
1990
罗马数字的应用
1. 时钟表盘
传统时钟用罗马数字 I-XII:
I II III IV V VI VII VIII IX X XI XII
2. 书籍章节
前言、附录用罗马数字:
Chapter I: Introduction
Chapter II: Methods
Chapter III: Results
3. 电影版权
电影结尾版权年份:
© MMXXIV
4. 君主编号
Elizabeth II(伊丽莎白二世)
Louis XIV(路易十四)
Pope John Paul II(若望保禄二世)
5. 体育赛事
Super Bowl LVIII(第 58 届超级碗)
Olympics XXIII(第 23 届奥运会)
6. 建筑物楼层
欧洲传统建筑地下层用罗马数字。
7. 化学元素周期表
老版本用罗马数字标记族:
族 I:碱金属
族 II:碱土金属
族 VII:卤素
族 VIII:贵金属
现代用阿拉伯数字 1-18。
8. 医学
Stage III cancer(三期癌症)
Type II diabetes(II 型糖尿病)
编程实现
JavaScript
function intToRoman(num) {
const values = [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1];
const symbols = ['M', 'CM', 'D', 'CD', 'C', 'XC', 'L', 'XL', 'X', 'IX', 'V', 'IV', 'I'];
let result = '';
for (let i = 0; i < values.length; i++) {
while (num >= values[i]) {
result += symbols[i];
num -= values[i];
}
}
return result;
}
function romanToInt(roman) {
const map = { 'I': 1, 'V': 5, 'X': 10, 'L': 50, 'C': 100, 'D': 500, 'M': 1000 };
let result = 0;
for (let i = 0; i < roman.length; i++) {
const current = map[roman[i]];
const next = map[roman[i + 1]];
if (next && current < next) {
result += next - current;
i++;
} else {
result += current;
}
}
return result;
}
console.log(intToRoman(2026)); // MMXXVI
console.log(romanToInt('MCMXC')); // 1990
Python
def int_to_roman(num):
values = [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1]
symbols = ['M', 'CM', 'D', 'CD', 'C', 'XC', 'L', 'XL', 'X', 'IX', 'V', 'IV', 'I']
result = ''
for i, value in enumerate(values):
while num >= value:
result += symbols[i]
num -= value
return result
def roman_to_int(roman):
roman_map = {'I': 1, 'V': 5, 'X': 10, 'L': 50, 'C': 100, 'D': 500, 'M': 1000}
result = 0
prev = 0
for char in reversed(roman):
value = roman_map[char]
if value < prev:
result -= value
else:
result += value
prev = value
return result
print(int_to_roman(2026)) # MMXXVI
print(roman_to_int('MCMXC')) # 1990
Java
public String intToRoman(int num) {
int[] values = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1};
String[] symbols = {"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"};
StringBuilder sb = new StringBuilder();
for (int i = 0; i < values.length; i++) {
while (num >= values[i]) {
sb.append(symbols[i]);
num -= values[i];
}
}
return sb.toString();
}
罗马数字的局限
1. 范围有限
标准罗马数字最大 3999(MMMCMXCIX)。更大需要特殊符号(如上方横线表示 1000 倍)。
2. 无 0
罗马数字没有 0。这限制数学运算。
3. 运算困难
加减乘除罗马数字很难心算。阿拉伯数字取代的原因之一。
4. 长度
大数字罗马表示很长:
3999 → MMMCMXCIX(9 字符)
阿拉伯数字 4 字符。
扩展罗马数字
上划线
上方横线表示 1000 倍:
V̄ = 5 × 1000 = 5000
X̄ = 10 × 1000 = 10000
括号
古代用括号表示大数:
(V) = 5000
(X) = 10000
((X)) = 100000
但很少用。
实战场景
场景 1:年份显示
2026 → MMXXVI
用于版权、纪念物、纪念碑。
场景 2:书籍前言
Preface ... v
Acknowledgments ... vii
Table of Contents ... ix
前言用小写罗马数字(i, ii, iii...)。
场景 3:建筑物标牌
Building erected MDCCCXCIX(1899 年建造)
场景 4:电影版权
© MMXXIV Studio Name
场景 5:体育赛事
Super Bowl LVIII
场景 6:考试题号
Question I: ...
Question II: ...
Question III: ...
场景 7:君主编号
Charles III(查尔斯三世)
与其他工具配合
罗马数字 + Unicode
工具:Unicode 工具
罗马数字有 Unicode 字符:
- Ⅰ U+2160
- Ⅱ U+2161
- Ⅲ U+2162
- Ⅳ U+2163
- Ⅴ U+2164
- Ⅵ U+2165
- ...
- Ⅿ U+216F
但这些 Unicode 字符兼容性差,建议用 ASCII 字母 I、V、X、L、C、D、M。
罗马数字 + 数字转换
工具:单位换算
进制转换、单位换算等数字处理。
常见问题
Q: 罗马数字有 0 吗?
A: 没有。罗马数字系统中不存在 0。
Q: 罗马数字最大表示多少?
A: 标准罗马数字 3999(MMMCMXCIX)。更大用上划线(每条 = × 1000)。
Q: 为什么时钟用 IIII 而不是 IV?
A: 传统美学原因(对称)。也叫"clockmaker's IV"。
Q: 罗马数字大写还是小写?
A: 通常大写。书籍前言页码常用小写(i, ii, iii)。
Q: 4 是 IV 还是 IIII?
A: 标准是 IV。时钟传统用 IIII。两者都可接受。
Q: 工具会泄露我的内容吗?
A: 52tool 罗马数字转换在浏览器端运行,输入不上传服务器。
常见问题解答
Q: 怎么把 2026 转罗马数字?
A: 用 52tool 罗马数字工具:输入 2026,输出 MMXXVI。
Q: 怎么把 MMXXVI 转数字?
A: 同工具,输入罗马数字,输出 2026。
Q: 3999 怎么写?
A: MMMCMXCIX。MMM(3000) + CM(900) + XC(90) + IX(9)。
Q: 4000 怎么写?
A: 标准罗马数字无法表示。需要扩展符号(如 IV 上划线)。
Q: 怎么记忆罗马数字?
A: 记 7 个基本符号(I=1, V=5, X=10, L=50, C=100, D=500, M=1000)和减法规则(小在大前则减)。
Q: 罗马数字还在用吗?
A: 还在某些场景:时钟、书籍章节、版权年份、君主编号、体育赛事。
总结
罗马数字转换是小众但实用工具:
- 在线转换 → 52tool 罗马数字
- 范围 → 1-3999
- 7 个符号 → I V X L C D M
- 减法规则 → IV=4, IX=9, XL=40, XC=90, CD=400, CM=900
记住:7 个基本符号,减法只在小前一位,最大 3999。