Roman Numeral Converter
Convert a number into a Roman numeral, or a Roman numeral back into a number. Works both directions, updates as you type, and nothing you enter ever leaves your browser.
Roman numeral symbols
| I | V | X | L | C | D | M |
|---|---|---|---|---|---|---|
| 1 | 5 | 10 | 50 | 100 | 500 | 1,000 |
Standard notation also uses six two-letter subtractive pairs to avoid four repeats of a symbol in a row: CM (900), CD (400), XC (90), XL (40), IX (9), and IV (4) — a smaller-value symbol placed before a larger one means "subtract," which is how 4 becomes IV instead of the non-standard IIII.
Worked examples
1994 breaks down as 1000 + 900 + 90 + 4, so the greedy algorithm appends M (1000), CM (900), XC (90), and IV (4) in that order, giving MCMXCIV. The largest standard value, 3999, is MMMCMXCIX — three M's (3000), then CM (900), XC (90), and IX (9). And a small one, 58, is 50 + 5 + 1 + 1 + 1, giving LVIII.
Frequently asked questions
Why is the valid range 1 to 3999?
Classical Roman numerals have no symbol for zero — Roman numeral systems predate the concept of zero as a number entirely — and there's no way to write a negative value either. The upper end, 3999 (MMMCMXCIX), is the largest number standard subtractive notation can represent with the usual seven symbols; going higher required special marks like a vinculum (an overline that multiplied a symbol's value by 1,000) or the apostrophus, both of which are separate historical notations this tool doesn't attempt to reproduce. So 1–3999 is the honest range for the notation this tool implements.
Why does "IIII" or "VV" get rejected instead of converted?
This tool validates that Roman → Number input is well-formed canonical Roman numeral notation before converting it, and rejects things like IIII (should be IV), VV (should be X), or IIX (should be VIII) rather than guessing what you meant. That's a deliberate choice, not the only valid one: a more lenient tool could sum symbol values left-to-right and silently accept those forms — you'd get an answer, just not necessarily the one you intended, and typos would pass through disguised as "valid" numbers. We'd rather tell you clearly that the input doesn't match standard notation than risk a silent misread. (You may see IIII on some clock faces — that's a real but non-standard stylistic convention, not the notation this tool validates against.)
How does Number → Roman actually build the numeral?
It's a greedy algorithm: starting from the largest value, 1000 (M), it repeatedly subtracts that value and appends the matching symbol for as long as the remaining number is still large enough, then moves to the next-largest value in an ordered list that includes the six subtractive pairs — 900 (CM), 500 (D), 400 (CD), 100 (C), 90 (XC), 50 (L), 40 (XL), 10 (X), 9 (IX), 5 (V), 4 (IV), 1 (I) — down to 1. Because the list is ordered largest-to-smallest and includes those subtractive pairs as their own entries, the greedy approach always produces the standard, canonical numeral — never an equivalent-but-nonstandard one.
Why does switching direction fill in the other box automatically?
When you switch from Number → Roman to Roman → Number (or back), the tool carries your last valid result into the new input box, so you can immediately verify the round trip — convert 1994 to MCMXCIV, flip direction, and see MCMXCIV convert straight back to 1994. It only carries over a valid result, never invalid or in-progress text, so it never surprises you with something you didn't type or convert yourself.