Roman numerals are an additive and subtractive system built from seven letters. Reading them is easy once you know the rule, but writing them by hand is where mistakes creep in, because the subtractive pairs are restricted in ways that are not obvious. IL is not 49, yet it looks plausible if you are working from memory.
Nothing is uploaded. The conversion is arithmetic performed on your own device, so a list of chapter numbers, film credits or monarch names never leaves the machine you typed it on.
Why the Roman numeral converter stops at 3999
Classical Roman numerals use seven letters: I, V, X, L, C, D and M. The largest of them is M for 1000, and standard notation never repeats a letter more than three times in a row. That places a hard ceiling at MMMCMXCIX, which is 3999, and it is why this Roman numeral converter accepts 1 to 3999 and refuses anything outside it.
Larger values existed in Roman practice, but they were written with an overline called a vinculum that multiplies the letter by a thousand, so a barred V means five thousand. The vinculum has no single agreed encoding in plain text, so rather than emit something other software will read differently, the tool declines the value and says why.
Zero has no Roman numeral at all. The system has no symbol for nothing and no positional notation, which is why the range starts at 1 rather than 0.
- I is 1, V is 5, X is 10, L is 50, C is 100, D is 500 and M is 1000.
- A smaller letter before a larger one subtracts, so IV is 4 and CM is 900.
- Only I, X and C ever subtract, and only from the next two larger letters.
- No letter repeats more than three times, so 4 is IV rather than IIII.
- V, L and D never repeat and never subtract.
The six subtractive pairs worth memorising
Every valid numeral can be written by working down a fixed list of thirteen values, and six of those are the subtractive pairs. They are IV for 4, IX for 9, XL for 40, XC for 90, CD for 400 and CM for 900. Nothing else subtracts. IL, IC, VX and XD are all invalid even though people write them, and this tool rejects them on input instead of pretending they mean 49, 99, 5 and 490.
The greedy algorithm behind the arabic to roman numerals direction is short. Take the largest value in the list that is not bigger than the remainder, write its letters, subtract it and repeat. Because the list already contains the subtractive pairs, the result is always the shortest legal spelling.
Reading Roman numerals to numbers without mistakes
Going the other way, the tool scans left to right and compares each letter with the one after it. If the current letter is worth less than the next, its value is subtracted, otherwise it is added. That single rule handles MCMXCIV correctly as 1994 without any special cases.
Validation is the part that matters. After parsing, the result is converted back into a numeral and compared with what you typed. If the two do not match, the input was not canonical and the line is reported as invalid. This catches IIII, VIV, IM and every other near miss in one check, which is more reliable than enumerating the illegal patterns.
Case is ignored on input, so mcmxciv and MCMXCIV both convert to 1994. Output case is your choice.
Where you still meet Roman numerals
They survive in more places than their age suggests. Film copyright lines, Super Bowl and Olympiad numbering, monarch and pope regnal names, clock faces, book preface page numbers and outline headings in legal documents all still use them. When you convert numbers to Roman numerals for any of these, the job is formatting rather than mathematics.
On the web the same idea appears in CSS, where the list-style-type values upper-roman and lower-roman number an ordered list automatically. If you are building a document rather than a page, you need the literal characters, which is what this tool produces.
One quirk worth knowing: clock faces very often show IIII rather than IV at four o'clock. That is a horological convention for visual balance, not a standard numeral, so canonical output will always give you IV.
Converting a whole list at once
Paste as many values as you like, one per line, and each is converted independently. Blank lines are preserved, and a line that cannot be converted is marked in place rather than dropped, so the output always has the same number of lines as the input.
That behaviour is what makes bulk work safe. If you are renumbering forty chapter headings, you want to paste the output straight back into your document and trust the row alignment. Silently skipping the lines that failed would corrupt everything below them.
The optional side by side format writes each line as the original value, an equals sign and the result, which is useful when you are producing a Roman numeral chart or checking someone else's work rather than replacing text.
| Value | Numeral | Note |
|---|---|---|
| 1000 | M | Repeats up to three times |
| 900 | CM | Subtractive pair |
| 500 | D | Never repeats |
| 400 | CD | Subtractive pair |
| 100 | C | Repeats up to three times |
| 90 | XC | Subtractive pair |
| 50 | L | Never repeats |
| 40 | XL | Subtractive pair |
| 10 | X | Repeats up to three times |
| 9 | IX | Subtractive pair |
| 5 | V | Never repeats |
| 4 | IV | Subtractive pair |
| 1 | I | Repeats up to three times |
How to use the Roman numeral converter
- 1
Choose a direction
Pick number to Roman numeral, or Roman numeral to number. The tool auto detects nothing, so the direction is always explicit.
- 2
Paste your values
Enter one value per line, or drop a plain text file. Numbers must fall between 1 and 3999, and numerals may be upper or lower case.
- 3
Set the output options
Choose uppercase or lowercase output, and turn on the side by side format if you want the original value kept beside each result.
- 4
Convert, then copy or download
Press convert. Any invalid line is flagged in place. Copy the result to the clipboard or download it as a text file.
Related tools worth bookmarking
Sources and further reading
- W3C: CSS Counter Styles Level 3The specification that defines the upper-roman and lower-roman counter styles, including their fallback behaviour outside the usable range.w3.org
- Unicode: Number Forms chartThe official code chart for the precomposed Roman numeral characters, which are distinct from the ordinary Latin letters.unicode.org
- MDN: list-style-typeHow browsers render Roman numerals in ordered lists, and what happens when a list runs past the supported range.developer.mozilla.org
Frequently asked questions
Common questions about the roman numeral converter.
3999, written MMMCMXCIX. Standard notation never repeats a letter more than three times and M is the largest letter, so 3999 is the ceiling. Anything above it needs the vinculum overline, which has no reliable plain text encoding.
Canonical Roman notation limits any letter to three consecutive repetitions and uses a subtractive pair instead. IIII is widely understood and appears on many clock faces, but it is not the standard form, so the converter always outputs IV.
Yes. Switch the direction and paste numerals instead. Each line is parsed left to right, validated by converting the result back and comparing, then reported as a plain number. Lowercase input is accepted and treated identically.
They are a typographic convention rather than a different system. Lowercase forms are standard for preface page numbering and for sub items in legal outlines. The tool reads either case on input and lets you pick the case of the output.
No. The Roman system has no zero and no negative numbers, which is why it was replaced for arithmetic by positional notation. Values must be whole numbers of at least 1, and decimals are rejected rather than rounded.
No. The whole conversion is arithmetic that runs in your browser tab, with no network request involved. You can open your browser developer tools, watch the network panel and confirm that nothing is sent while you convert.