Roman Numeral Converter

Roman numeral converter: translate decimal numbers to Roman numerals and Roman numerals back to numbers instantly, for values up to 3999. Free, no signup.

Client-side only Nothing stored No account needed
Last verified July 2026

Calculated in your browser; your inputs are not sent to us. Privacy

Results update when you run the tool.

Output will appear here.
Ask an AI to explain this result
Share this result

This tool processes the selected input in your browser. Review the output before relying on it; format and file behavior can vary by browser and source data.

Your inputs and results stay in this browser. This page may send privacy-bounded aggregate interaction events described in Privacy; it does not send your entered values or result contents.

Use this result

Share the current inputs or ask ChatGPT to explain the calculation in context.

More options
Report a calculation issue
Direct answer

What does this converter do?

Roman numeral converter: translate decimal numbers to Roman numerals and Roman numerals back to numbers instantly, for values up to 3999. Free, no signup.

  • Range is 1-4999; subtractive pairs (IV, IX, XL, XC, CD, CM) follow the modern convention rather than additive-only form.
1987 converted to Roman numeral MCMLXXXVII step by step
1987 becomes MCMLXXXVII in 7 characters
Formula & evidence

How this calculator works

Reviewed 2026-09-20 · BoringToolsKit Editorial Team

Formula

Greedy subtraction over the value table 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): take the largest symbol that fits, repeat until the value is consumed. Reading back subtracts a smaller symbol when it precedes a larger one.

Sources

Sources support the method, terminology, or planning context. Editable assumptions remain your responsibility.

Assumptions to verify

  • Inputs are treated as exact decimal values.
  • Standard (not historical or survey) unit definitions are used.
  • The calculation uses the factors at the precision shown in the formula panel; rounding beyond that is display-only and adds no accuracy.

Frequently asked questions

What is the valid range for Roman numerals here?

The tool accepts 1 to 4999. There is no standard symbol for 5000 or larger in the classical set, so values outside that range are rejected instead of approximated.

Cite this tool

BoringToolsKit. “Roman Numeral Converter.” boringtoolskit.com/roman-numeral-converter/ (reviewed 2026-09-20). Free to reference in articles, syllabi, and answer posts with a link.

Privacy: Inputs and results stay in this browser. Conversion runs locally in your browser; review the output before relying on it.

Worked example: 1987 to MCMLXXXVII, step by step

The converter walks a fixed value table from largest to smallest: 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). Take 1987. Subtract 1000 once: remainder 887, output M. No 900 or 500 or 400 or 100 fits in 887? 100 fits eight times, but the table caps it: 887 - 100 = 787 - 100 = 687 - 100 = 587 - 100 = 487 - 100 = 387 - 100 = 287 - 100 = 187 - 100 = 87, so eight Cs, output MMMM? No: M + CCCCCCCC. That is why the 900 and 400 pairs exist: after the eighth C the remainder 87 falls through to 90 (no), 50 (yes), leaving 37, so L. Then 10 three times: 37 - 30 = 7, XXX. Then 5 once, V, remainder 2, then I twice, II.

Chained: M (1000) + CM (900) + L (50) + XXX (30) + V (5) + II (2) = MCMLXXXVII = 1987. Seven characters encode four subtractions and three additions. The same table in reverse decodes it: M=1000, C before M means subtract 100, so CM=900; L=50; X,X,X=30; V=5; I,I=2. Sum: 1000 + 900 + 50 + 30 + 5 + 2 = 1987.

Where the standard breaks: no zero, no 5000, and loose inputs

Roman numerals have no zero and no practical ceiling here: the converter accepts 1 to 4999 and rejects 0, negatives, and 5000 and up. Entering 0 or 5000 returns an error, not a numeral, because classical notation simply has no symbol for them. Anything above 3999 also needs repeated M characters: 3888 is MMMDCCCLXXXVIII, 15 characters, the longest possible output in this range.

Decoding is looser than encoding. The subtractive parser accepts sequences like IIII (returns 4),VV (returns 10), or IC (100 - 1 = 99), none of which are valid classical forms. Standard Rome used additive IV-free clock faces well into the 20th century, and the BBC displayed 1999 as MCMXCIX while many inscriptions used MCMXCIIII. So a round trip is safe (to-roman then from-roman always matches) but the reverse is not: from-roman('IIII') gives 4, yet 4 converts back to IV. Treat from-roman results as numeric values, not proof the input was well-formed.