induwara.lk
induwara.lkUtility · Numbers

Roman Numeral Converter

Convert any number to Roman numerals and back, instantly. Covers the standard 1–3,999 range, optional vinculum notation up to 3,999,999, rejects malformed numerals with a clear reason, and shows the breakdown. Free, no signup.

By Induwara AshinsanaUpdated Jul 10, 2026
Roman numeral converter1–3,999

Enter a whole number from 1 to 3,999. Commas are ignored.

Standard range 1–3,999

Try
Roman numeral
MMXXVI

2,026 in Roman numerals

Breakdown

GroupValueRunning total
M1,0001,000
M1,0002,000
X102,010
X102,020
V52,025
I12,026
Total2,026

The seven symbols

  • M1,000
  • D500
  • C100
  • L50
  • X10
  • V5
  • I1

Subtractive pairs

  • IV4
  • IX9
  • XL40
  • XC90
  • CD400
  • CM900

These six are the only legal subtractions.

Symbol values and subtractive rules follow Encyclopaedia Britannica and the Unicode Number Forms chart. Full sources are cited below.

How it works

Roman numerals use seven letters with fixed values — I=1, V=5, X=10, L=50, C=100, D=500, M=1000. A number is built by placing symbols from largest to smallest and adding their values, with six special subtractive pairs to avoid four-in-a-row.

Number → Roman. The converter lists every value token from largest to smallest, including the subtractive pairs: M=1000, CM=900, D=500, CD=400, C=100, XC=90, L=50, XL=40, X=10, IX=9, V=5, IV=4, I=1. It repeatedly takes the largest token that fits the remaining value and appends its letters. This greedy method is provably minimal, so it always produces the canonical form — 4 becomes IV, never IIII.

Roman → Number.First any character outside the alphabet is rejected. Then the numeral is scanned left to right: if a symbol's value is less than the value of the symbol immediately to its right, it is subtracted; otherwise it is added. So in MCMXCIV the C before M subtracts (CM = 900) while the M at the front adds.

Validation by round-trip. Being decodable is not the same as being legal. To guarantee a real numeral, the tool re-encodes the decoded value and requires it to match your input. This single check rejects IIII, VV, IL and IC at once, because none is the canonical spelling of any integer — and the error tells you the correct form.

Vinculum mode. A bar (vinculum) over a numeral multiplies that group by 1,000. When enabled, the encoder splits the value into thousands and a 0–999 remainder, renders the thousands with a combining overline (Unicode U+0305), and appends the remainder. That lifts the range from 3,999 to 3,999,999. There is no symbol for zero or negatives, so those inputs are blocked with an explanation rather than a fake result.

Worked examples

2026 → MMXXVI

  1. 2026 ≥ 1000 → M, remainder 1026
  2. 1026 ≥ 1000 → M, remainder 26 (so far MM)
  3. 26 ≥ 10 → X, remainder 16 → MMX
  4. 16 ≥ 10 → X, remainder 6 → MMXX
  5. 6 ≥ 5 → V, remainder 1 → MMXXV
  6. 1 ≥ 1 → I, remainder 0 → MMXXVI
  7. Check: M(1000)+M(1000)+X(10)+X(10)+V(5)+I(1) = 2026

1994 → MCMXCIV (subtractive pairs)

  1. 1994 ≥ 1000 → M, remainder 994
  2. 994 ≥ 900 → CM, remainder 94
  3. 94 ≥ 90 → XC, remainder 4
  4. 4 ≥ 4 → IV, remainder 0
  5. Result MCMXCIV; M(1000)+CM(900)+XC(90)+IV(4) = 1994

IC → rejected (malformed)

  1. Naïve decode of IC: I(1) sits before C(100), so 100 − 1 = 99
  2. Re-encode 99 with the greedy method → XCIX
  3. XCIX ≠ IC, so the input is not canonical
  4. Rejected: 99 is written XCIX. IC is not a legal subtractive pair.

Common values

A quick reference for years and round numbers people look up most.

NumberRoman numeral
4IV
9IX
14XIV
40XL
49XLIX
90XC
99XCIX
400CD
500D
900CM
1,000M
1,500MD
2,000MM
2,024MMXXIV
2,025MMXXV
2,026MMXXVI
3,999MMMCMXCIX

Frequently asked questions

Sources & references

The symbol values and subtractive rules are fixed by the numeral system itself. Encoding and decoding were last cross-checked against the sources above on 2026-07-10, and the converter runs a 17-plus case self-test on every load.

Related tools

Rate this tool
Be the first to rate

Comments & feedback

Spotted a bug or want an improvement? Tell us — our team reviews every comment, and good ideas get built. Comments are public and anonymous.

Found a bug, edge case, or want to suggest an improvement?

Email me at [email protected] — most fixes ship within 24 hours.