Seven letters and six pairs
The whole system is seven letters: I is 1, V is 5, X is 10, L is 50, C is 100, D is 500 and M is 1000. Written from largest to smallest they simply add up, so MDCLXVI is 1666. The one twist is subtraction: a smaller letter placed before a larger one is taken away from it, so IV is 4 and CM is 900.
That twist is where converters and people go wrong, because it is far more restricted than it looks. Only six pairs are allowed: IV, IX, XL, XC, CD and CM. I can only stand before V and X, X only before L and C, and C only before D and M. V, L and D are never subtracted and never repeated, and no letter appears more than three times in a row.
Follow those rules and every number from 1 to 3,999 has exactly one spelling, built one decimal place at a time. 1994 is 1000 + 900 + 90 + 4, so M + CM + XC + IV, so MCMXCIV. IM for 999 or IC for 99 look shorter, and you will see them on the internet, but they skip places and break the pair rule. The standard spellings are CMXCIX and XCIX.
The Romans were less tidy than the modern rules. Inscriptions mix additive forms such as IIII and VIIII with the subtractive ones, and the strict version is a later standardisation. This page writes and accepts only the standard form, and when you type something else it names the rule that was broken and shows the standard spelling of what your letters read as.
Standard, clock face or lower case: which form you need
- Standard upper case for anything read by other people: a year in film credits or on a cornerstone, a sequel or an event number, a monarch or a pope, a chapter heading. This is the default, and it is the only form this page produces.
- Lower case for outlines and for the front matter of a book, where the preface and contents pages are numbered i, ii, iii before page 1 begins. The values are identical, so tick the lower case box and copy.
- IIII on a clock face is a design tradition rather than an error, and many clocks use it. If you are designing a dial either choice is defensible. Everywhere else, write IV, which is why the converter flags IIII instead of accepting it silently.
- Numbers above 3,999 have no standard plain text form. Historically a bar over a letter multiplied it by 1,000, but the bar does not survive copying and pasting. Use ordinary digits for large values.
Unicode also has single character numerals such as a one glyph twelve. They exist for compatibility with older character sets, and this page reads them, but it writes plain letters, because plain letters work in every font and every search box.
How to turn a number into Roman numerals
- Type the number into the Number box, or tap a quick pick. The Roman numeral appears as you type, with no button to press.
- Read the breakdown under the result. The number is split into thousands, hundreds, tens and ones, and each place is written on its own: 2026 is MM + XX + VI.
- Notice that a zero place is simply missing. 2026 has no hundreds, so nothing is written for them, which is why the Romans never needed a zero.
- Open “How each place was written” to see the arithmetic for every place, such as 1000 - 100 for CM, with the subtractive pairs marked.
- Press copy. You get the letters alone, in the case shown.
How to read a Roman numeral, and why some are rejected
- Type or paste the letters into the Roman numeral box. Lower case, mixed case and stray spaces are all fine.
- If the numeral is standard, the number appears straight away with the same breakdown, so you can see how it was read.
- If it is not, the message names the rule it breaks: a letter used four times, a pair such as IL that is not one of the six, a V, L or D that was subtracted or doubled, or two letters subtracted at once as in IIX.
- Where the letters still have one clear reading, the message says what they add up to and offers the standard spelling. Press the button to use it.
To read one by hand, go left to right and add each letter, but subtract any letter that is smaller than the one after it. In MCMXCIV that gives 1000, then 900 for CM, 90 for XC and 4 for IV.
How to write a full date in Roman numerals
Dates are a common reason to convert, often for a tattoo, a ring or a wedding sign, and they are where mistakes last longest. Convert the day, the month and the year separately and put a dot or a middle dot between them. The 4th of July 1776 is IV.VII.MDCCLXXVI in day month year order and VII.IV.MDCCLXXVI in the American month day year order.
Pick the order your readers expect before anything permanent happens, because nothing in the numerals says which part is the day. Then type each part back into the Roman numeral box and check that it returns the number you meant. For the date arithmetic itself, such as how many days until an anniversary, use the date calculator.
Getting the numeral into a document or a design
- Copy button: copies the letters only, with no spaces and no working, in upper or lower case as shown. From the Roman side it copies the plain number.
- They are ordinary letters, so they paste into any app and any font, can be searched, and can be set in small caps or letter spaced like any other word.
- Page numbers in Microsoft Word come from the page number format dialog, which offers I, II, III and i, ii, iii. Setting the front matter as its own section lets it restart at 1 in ordinary digits afterwards.
- For print and engraving, send the copied letters rather than retyping them. A retyped numeral is how an I goes missing between the proof and the stone.
Roman numerals in spreadsheets, web pages and code
Excel and Google Sheets both have a pair of functions:
=ROMAN(1994)
=ARABIC("MCMXCIV")
Both work from 1 to 3,999. Excel’s ROMAN takes an optional second argument from 0 to 4 that produces shorter, non-standard forms, so ROMAN(499, 4) gives ID instead of CDXCIX. Leave it out when the result is for other people.
On web pages
Numbered lists do not need converting at all. In HTML, <ol type="i"> numbers a list i, ii, iii, and in CSS list-style-type: upper-roman or lower-roman does the same for any list. The CSS counter styles specification defines these styles for 1 to 3,999 and falls back to ordinary digits outside that range.
In code
Neither JavaScript nor Python has a built-in converter. The usual approach is a table of the thirteen values from largest to smallest, 1000 M, 900 CM, 500 D, 400 CD and so on down to 1 I, and a loop that subtracts the largest value that fits. For parsing, the simplest strict check is the one this page uses: read the letters, convert the value back, and reject the input if the two spellings differ.
Limits of this converter
- 1 to 3,999 only. No zero, no negative numbers, no fractions, and no bars or other marks for thousands.
- It is strict on purpose. Forms you will meet in old inscriptions, on clock faces or in spreadsheet output, such as IIII, IIX or ID, are rejected rather than quietly accepted. The message still tells you what they read as, which is what you need when transcribing.
- The suggested spelling is a reading, not a guess at intent. When the letters could mean more than one thing, as with IXX, no suggestion is offered at all.
- Check anything permanent twice. Convert it, convert it back, and have someone else read the date order before it goes on skin, stone or metal.
At the time of writing the rules here match the standard form used by the spreadsheet functions and the CSS list styles described above.
Frequently asked questions
How do you write a year in Roman numerals?
Split the year into thousands, hundreds, tens and ones, write each part on its own, and join them. 1999 is 1000 + 900 + 90 + 9, which is M + CM + XC + IX, so MCMXCIX. 2000 is simply MM, because a place holding zero is left out rather than written. 2026 is MM + XX + VI, so MMXXVI. Type the year into the Number box above and the breakdown under the result shows each of those pieces, so you can check the letters rather than trust them.
Why is 4 written IV and not IIII?
Because the standard form never uses more than three of the same letter in a row, and puts a smaller letter before a larger one to mean subtraction. So 4 is one less than five, IV, and 9 is one less than ten, IX. Roman inscriptions themselves are not consistent, and additive forms such as IIII and VIIII do turn up. Clock faces still often show IIII by tradition. It is readable, but it is not the standard spelling, which is why this page flags it and offers IV instead.
What is the largest number you can write in Roman numerals?
3,999, written MMMCMXCIX, is the largest in the standard form, because writing 4,000 would need a fourth M in a row. Larger numbers were written with a bar, called a vinculum, over a letter to multiply it by 1,000, so V with a bar meant 5,000. That bar is a typographic mark rather than a character, and it tends to vanish when text is copied, which is why this converter, the ROMAN function in spreadsheets and the roman list styles as the CSS specification defines them all stop at 3,999.
Is there a Roman numeral for zero?
No. The Roman system has no symbol for zero and no need for one, because it does not use place value: an empty place is just left out, which is why 2000 is MM with nothing after it. Some medieval tables used the letter N, from the Latin nulla, to mean nothing, but that never became part of the numerals themselves. The smallest number you can write is I, which is 1.
Why can I not write 99 as IC or 49 as IL?
Because a letter may only be subtracted from the next two letters up: I from V and X, X from L and C, and C from D and M. That gives exactly six pairs, IV, IX, XL, XC, CD and CM, and every number is built from them plus plain letters. So 99 is 90 + 9, which is XC + IX, giving XCIX. IC looks shorter but skips a place, and V, L and D are never subtracted at all, so VX for 5 is not valid either.
Can Roman numerals be written in lower case?
Yes, and the values are the same. Lower case is the usual choice for the front matter of a book, where the preface and contents pages run i, ii, iii before page 1, and for the second or third level of an outline. Microsoft Word offers i, ii, iii as a page number format, and in HTML and CSS the lower-roman list style does the same for lists. Tick the lower case box above and the result, the breakdown and the copy button all switch.
How do I convert Roman numerals in Excel or Google Sheets?
Use =ROMAN(1994) to get MCMXCIV and =ARABIC("MCMXCIV") to get 1994 back. Both spreadsheets support numbers from 1 to 3,999. In Excel, ROMAN has an optional second argument that produces progressively shorter, non-standard forms, so 499 can come out as ID rather than CDXCIX. Leave the argument out, or set it to 0, whenever the result will be read by someone else, and paste a doubtful value into this page to check it against the standard rules.
How do I write a date in Roman numerals for a tattoo or an engraving?
Convert the day, the month and the year separately and keep a separator between them, usually a dot or a middle dot. The 4th of July 1776 becomes IV.VII.MDCCLXXVI in day month year order, or VII.IV.MDCCLXXVI in the American month day year order, so decide which order your reader expects before anything permanent happens. Then type each part back into the Roman numeral box and make sure it returns the number you meant. That round trip is the cheapest proofreading you will ever do.
How do I read a long numeral such as MCMXCIV?
Go left to right and add each letter, except when a letter is smaller than the one after it, in which case subtract it. M is 1000. C comes before M, so CM is 900. X comes before C, so XC is 90. I comes before V, so IV is 4. Adding 1000, 900, 90 and 4 gives 1994. With practice you read the six subtractive pairs as single units, and a long numeral turns into four short pieces, one per decimal place.
Does this page send what I type anywhere?
No. The conversion is a few lines of arithmetic that run in your browser, nothing you type is uploaded or logged, and no value is written into the address bar, so a link you share carries the tool and not your birth year. The only event the site records is an anonymous counter when you press copy, which notes the direction, to Roman or to a number, and never the value itself.
Sources
- The history of the letters, the additive forms found in inscriptions and the bar for thousands are summarised in Wikipedia’s article on Roman numerals, with references to the primary literature.
- The upper-roman and lower-roman list styles are documented on MDN under list-style-type, and their range is defined in the W3C CSS Counter Styles Level 3 specification.
- The single character numerals are in the Unicode Number Forms block, shown in the Unicode code chart for U+2150 to U+218F.
- The ROMAN and ARABIC spreadsheet functions, including the optional form argument of ROMAN, are described in the Microsoft Excel and Google Sheets function help pages.
More tools
For the other kind of numeral conversion, between binary, decimal and hexadecimal, use the number base converter. If the numeral is a date, the date calculator counts the days between it and today, and the age calculator turns a birth year into an exact age. To set a heading in a different case, the text case converter handles the rest of the line.
Related tools
- Number Base Converter
Convert numbers between binary, octal, decimal and hexadecimal, including large integers a…
- Date Calculator
Count the days, weeks and months between two dates, or add and subtract days, weeks or mon…
- Age Calculator
Enter a birth date to get your exact age in years, months and days, total days and hours, …
- Text Case Converter
Convert text to UPPERCASE, lowercase, Title Case, Sentence case, camelCase, PascalCase, sn…
Privacy: every conversion runs in your browser. Nothing you type is uploaded or logged, and no value is written into the URL, so a copied link carries the tool and not your numbers. The only event the site records is an anonymous copy counter that notes the direction, to Roman or to a number, never the value.
