숫자(아라비아 숫자)와 로마 숫자 중 어느 쪽을 입력해도 자동으로 판별해 서로 바꿔 줍니다. 1000 + 900 + 90 + 4 같은 분해 과정도 보여 줍니다.
이 페이지에서 할 수 있는 것
- ‘1994를 로마 숫자로 쓰면?’, ‘MCMXCIV는 어떤 수일까?’ 같은 변환을 입력란 하나로 양쪽 방향 모두 한 번에 할 수 있습니다(숫자인지 로마 숫자인지는 자동으로 판별합니다)
- 1000 + 900 + 90 + 4 → M + CM + XC + IV처럼 분해하는 과정을 보여 주므로 변환하는 방법 자체를 익힐 수 있습니다
- 시계 문자판, 영화나 게임의 속편 번호, 올림픽 회차 등에서 보이는 로마 숫자를 그 자리에서 읽을 수 있습니다
- 4,000 이상의 큰 수는 윗줄(빈쿨룸)이 붙은 로마 숫자로 바꿀 수 있습니다(밑줄 기호 _로 입력 가능. 3,999,999까지)
- 시계 문자판에서 자주 쓰는 IIII 같은 관용 표기도 읽어 내고, 정식 표기(IV)도 함께 보여 줍니다
이 계산은 어디에 쓰일까요?
로마 숫자를 가장 자주 보는 곳은 손목시계나 벽시계의 문자판입니다. XII는 12시, III은 3시, IX는 9시입니다. 감산 규칙만 알면 모두 읽을 수 있습니다.
자세히 보면 많은 시계에서 4시가 정식 표기인 IV가 아니라 IIII로 쓰여 있습니다. ‘문자판의 좌우 균형이 좋아 보인다’, ‘IV가 라틴어로 쓴 신 유피테르(IVPPITER)의 첫 글자와 겹치는 것을 피했다’ 등 여러 설이 있는 전통적인 관용 표기로, 규칙의 예외로서 지금도 이어지고 있습니다.
‘록키 IV’는 4편, ‘파이널 판타지 VII’은 7편, ‘문명 VI’은 6편입니다. 이처럼 속편의 번호에는 로마 숫자가 널리 쓰입니다.
10을 넘으면 ‘XIII(13편)’처럼 읽기 어려워지지만, 감산 규칙만 알면 헷갈리지 않습니다. 작품 제목의 숫자를 바로 읽을 수 있으면 작은 교양이 됩니다.
국제 대회의 ‘제○회’에는 로마 숫자가 쓰입니다. 2024년 파리 올림픽의 공식 이름은 ‘제XXXIII회 올림픽 경기 대회’(33번째)이고, 2018년 평창 동계올림픽은 ‘제XXIII회 동계올림픽’(23번째)이었습니다.
뉴스나 포스터에서 이런 표기를 보면 XXXIII = 10 + 10 + 10 + 1 + 1 + 1 = 33, XXIII = 10 + 10 + 1 + 1 + 1 = 23으로 읽어 낼 수 있습니다.
유럽의 군주나 교황이 몇 번째인지는 영어 등에서 로마 숫자로 씁니다. 엘리자베스 2세는 Elizabeth II, 프랑스의 ‘태양왕’ 루이 14세는 Louis XIV, 교황 요한 바오로 2세는 John Paul II입니다.
역사책이나 해외 뉴스, 기념주화 등에서 ‘Henry VIII(헨리 8세)’ 같은 표기를 만나면 VIII = 5 + 1 + 1 + 1 = 8로 정확하게 읽을 수 있습니다.
영화의 엔딩 크레디트 마지막에는 ‘MMXXVI’(2026년)처럼 제작 연도가 로마 숫자로 들어 있기도 합니다. 또 유럽이나 미국의 건물 머릿돌이나 기념비에는 완공 연도를 로마 숫자로 새기는 전통이 있습니다.
예를 들어 MCMLXXXVIII은 1000 + 900 + 80 + 8 = 1988로, 서울 올림픽이 열린 해입니다. 긴 연도도 M, CM, LXXX, VIII처럼 기호 묶음별로 끊어서 더해 나가면 정확하게 읽을 수 있습니다.
공식
용어·기호 해설
기호
| I | 아이 | 1을 나타내는 기호입니다. 손가락 1개의 모양에서 왔다고 합니다. I = 1, II = 2, III = 3입니다. |
| V | 브이 | 5를 나타내는 기호입니다. 편 손바닥(손가락 5개)의 모양에서 왔다는 설이 있습니다. |
| X | 엑스 | 10을 나타내는 기호입니다. V(5) 2개를 위아래로 맞붙인 모양이라는 설이 있습니다. |
| L | 엘 | 50을 나타내는 기호입니다. |
| C | 시 | 100을 나타내는 기호입니다. 라틴어 centum(100)의 머리글자라고 합니다. ‘센티미터(100분의 1미터)’의 centi와 어원이 같습니다. |
| D | 디 | 500을 나타내는 기호입니다. 1000을 나타내던 옛 기호의 오른쪽 절반에서 왔다는 설이 있습니다. |
| M | 엠 | 1000을 나타내는 기호입니다. 라틴어 mille(1000)의 머리글자라고 합니다. ‘밀리미터(1000분의 1미터)’의 milli와 어원이 같습니다. |
| X̅ | 엑스(윗줄 있음) | 기호 위의 윗줄(빈쿨룸)은 1000배를 나타냅니다. X̅는 10 × 1000 = 10,000입니다. 이 페이지에서는 ‘_X’처럼 앞에 밑줄 기호 _를 붙여 입력합니다. |
용어
| 로마 숫자 | 고대 로마에서 생겨난, I, V, X, L, C, D, M 7개 기호의 조합으로 수를 나타내는 방법입니다. 자릿값이라는 개념이 없고 기호의 값을 더하거나 빼서 수를 나타냅니다. 0을 나타내는 기호는 없습니다. |
| 아라비아 숫자 | 0~9의 10가지 숫자로 수를 나타내는, 우리가 평소에 쓰는 방법입니다. 인도에서 생겨나 아라비아를 거쳐 유럽에 전해졌기 때문에 이렇게 부릅니다. 자릿값이 있는 표기법이라서 같은 ‘9’라도 쓰는 자리에 따라 9, 90, 900으로 값이 달라집니다. |
| 감산 표기 | 작은 기호를 큰 기호 앞에 놓아 뺄셈을 나타내는 표기입니다. IV(4), IX(9), XL(40), XC(90), CD(400), CM(900)의 6가지만 정식으로 인정됩니다. 같은 기호를 4번 연달아 쓰지 않기 위한 방법입니다. |
| 탐욕 알고리즘 | 그때그때 고를 수 있는 가장 큰 것을 계속 골라 나가는 계산 방법입니다. 영어로 greedy algorithm이라고 해서 ‘그리디 알고리즘’이라고도 부르며, 프로그래밍의 기본적인 생각 가운데 하나입니다. 아라비아 숫자를 로마 숫자로 바꿀 때 이 방법을 쓰면 반드시 정식 표기가 됩니다. |
| 빈쿨룸 | 기호 위에 긋는 윗줄을 말합니다(라틴어로 ‘끈, 묶음’이라는 뜻). 윗줄을 그은 기호는 값이 1000배가 되므로 기본 7개 기호로는 쓸 수 없는 4,000 이상의 수를 나타낼 수 있습니다. 이 페이지에서는 3,999,999까지 변환할 수 있습니다. |
| 관용 표기 | 정식 규칙에는 맞지 않지만 예전부터 널리 써 온 표기입니다. 대표적인 예가 시계 문자판의 IIII(정식으로는 IV)입니다. 이 페이지의 계산기는 관용 표기도 읽어 내고 정식 표기를 함께 보여 줍니다. |
먼저 알아 두면 좋은 내용
이 페이지의 계산을 ‘뜻을 이해하고’ 쓸 수 있도록 먼저 알아 두면 좋은 내용을 정리했습니다.
| 덧셈과 뺄셈(초등학교 1~3학년, 6~9세) |
|
| 십진법의 자릿값(초등학교) |
|
| 큰 것부터 나누는 생각(초등학교·돈 계산) |
|
Excel로 계산하는 방법
| 아라비아 숫자 | 1994 |
| 로마 숫자 | =ROMAN(B1) |
| 로마 숫자 | MCMXCIV |
| 아라비아 숫자 | =ARABIC(B1) |
두 번째 표는 B1에 로마 숫자를 넣으면 B2에 아라비아 숫자가 표시됩니다(MCMXCIV라면 1994). ARABIC 함수는 소문자(mcmxciv)도 변환할 수 있습니다.
Google 스프레드시트로 계산하는 방법
| 아라비아 숫자 | 1994 |
| 로마 숫자 | =ROMAN(B1) |
| 로마 숫자 | MCMXCIV |
| 아라비아 숫자 | =ARABIC(B1) |
ROMAN 함수의 상한이 3,999인 것은 Excel과 같지만, Google 스프레드시트에서 변환할 수 있는 범위는 1~3,999이고 0은 오류가 됩니다.
Python으로 계산하는 방법
value = "1994" # 변환할 값(아라비아 숫자 또는 로마 숫자)
# 탐욕 알고리즘용 대응표(큰 순서. 900=CM 같은 감산 쌍도 넣어 둔다)
VALUES = [(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")]
def to_roman(n):
# 아라비아 숫자 -> 로마 숫자(뺄 수 있는 가장 큰 값부터 차례로 기호로 바꾼다)
result = ""
for v, symbol in VALUES:
while n >= v:
result += symbol
n -= v
return result
SYMBOL_VALUES = {"I": 1, "V": 5, "X": 10, "L": 50, "C": 100, "D": 500, "M": 1000}
def to_arabic(roman):
# 로마 숫자 -> 아라비아 숫자(바로 오른쪽 기호가 더 크면 뺄셈)
total = 0
for i, ch in enumerate(roman):
v = SYMBOL_VALUES[ch]
if i + 1 < len(roman) and SYMBOL_VALUES[roman[i + 1]] > v:
total -= v
else:
total += v
return total
s = value.strip().upper()
if s.isdigit():
print(f"{s} = {to_roman(int(s))}")
else:
print(f"{s} = {to_arabic(s)}")
LaTeX 등 수식 언어로 쓰는 법(복사 가능)
N = v₁ + v₂ + ⋯ + vₖ
N = v_1 + v_2 + \cdots + v_k
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>N</mi>
<mo>=</mo>
<msub><mi>v</mi><mn>1</mn></msub>
<mo>+</mo>
<msub><mi>v</mi><mn>2</mn></msub>
<mo>+</mo>
<mo>⋯</mo>
<mo>+</mo>
<msub><mi>v</mi><mi>k</mi></msub>
</mrow>
</math>
N = v_1 + v_2 + cdots + v_k
RomanNumeral[1994]
convert(1994, roman);
N = sum([1000 900 90 4]);
N = v_1 + v_2 + ⋯ + v_k
N = Σ ±vᵢ
N = \sum_{i=1}^{k} \pm v_i
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>N</mi>
<mo>=</mo>
<munderover>
<mo>∑</mo>
<mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow>
<mi>k</mi>
</munderover>
<mo>±</mo>
<msub><mi>v</mi><mi>i</mi></msub>
</mrow>
</math>
N = sum_(i=1)^k +-v_i
FromRomanNumeral["MCMXCIV"]
convert("MCMXCIV", arabic);
N = 1000 - 100 + 1000 - 10 + 100 - 1 + 5;
N = ∑_(i=1)^k ±v_i
ChatGPT 에게 물어서 계산하는 방법
당신은 로마 숫자 변환 계산 도우미입니다. 다음 변환을 반드시 Python 코드를 실제로 실행해서 하고, 실행 결과만을 근거로 답해 주세요(암산이나 추측으로 답하지 마세요). 1. 1994를 로마 숫자로 바꿔 주세요. 2. 로마 숫자 MCMXCIV를 아라비아 숫자로 바꿔 주세요. 3. 2026을 로마 숫자로 바꿔 주세요. 아라비아 숫자에서 바꾸는 경우에는 1994 = 1000 + 900 + 90 + 4처럼 값을 분해한 것도 보여 주세요. 계산에 쓴 코드와 실행 결과를 보여 주세요.
사용법
-
1숫자 입력계산하고 싶은 숫자를 입력란에 입력합니다
-
2계산‘계산’ 버튼을 누릅니다
-
3결과 확인계산 결과가 바로 표시됩니다. 계산의 원리와 공식 해설도 같은 페이지에서 확인할 수 있습니다
DataChef의 특징
전문 지식 없이도 직관적이고 간단하게 사용
개인정보를 등록하지 않고도 이용할 수 있습니다
"다운로드"를 누르면 파일이 자동으로 삭제됩니다
출처 표기 불필요
상업적 이용 허가 연락도 필요 없습니다