Roman Numeral Converter
Convert between integers (1–3999) and Roman numerals, locally.
Convert between numbers and Roman numerals
This converter works in both directions at once: type a whole number in the top field and its Roman numeral appears below, or type a numeral in the bottom field and its numeric value appears above. It uses standard subtractive notation, the same rules behind clock faces and copyright years, so IV means 4 and CM means 900 rather than IIII or DCCCC. Both fields update locally as you type, and there's a copy button next to the numeral.
How to use the Roman Numeral Converter
- Type a whole number from 1 to 3999 into the Number field to see its Roman numeral below.
- Or type a Roman numeral, using only the letters M D C L X V I, into the numeral field.
- Read the converted value update in the other field as you edit either one.
- Copy the Roman numeral with the button next to its input field.
The number-to-numeral direction validates by round-tripping the result: it converts your typed numeral back to a number and re-renders it, so a malformed input like IIII or VX is rejected as "not a valid Roman numeral" rather than silently misparsed.
The supported range is 1 to 3999, because the standard letters M D C L X V I have no way to represent zero or numbers of 4000 and above without non-standard notation like an overline.
Frequently asked questions
- Why is the range limited to 1–3999?
- Standard Roman numerals only define symbols up to M (1000), and repeating M more than three times isn't valid subtractive notation, so 3999 (MMMCMXCIX) is the largest number the classic letter set can represent.
- Can I type lowercase Roman numerals?
- Yes, lowercase input like "mcmxciv" is uppercased automatically before parsing, so you don't need to hold shift, though the field displays and copies the result in uppercase.
- Why does IIII show as an invalid numeral?
- IIII is not standard subtractive notation, the correct form for 4 is IV, and this tool rejects any numeral that doesn't round-trip back to the same string when it's regenerated from its numeric value.
- Does it handle zero or negative numbers?
- No, Roman numerals have no symbol for zero and no notion of a negative sign, so entering 0 or a negative number returns the error that the value falls outside the 1–3999 range.