Roman Numeral Converter
Convert decimal numbers to Roman numerals and back. Standard 1-3,999 plus the classical vinculum (overline) extension up to 3,999,999. Strict parser rejects invalid patterns. 100% offline.
What is the Roman Numeral Converter?
Roman Numeral Converter is bidirectional. For decimal → Roman, it produces the canonical form (`MCMXLVII` for 1947, `MMXXVI` for 2026). For numbers above 3,999 it uses the classical vinculum extension — each letter with an overline is multiplied by 1,000, so `V̄` is 5,000 and `M̄` is 1,000,000. The overlines are rendered with the U+0305 combining macron so the output is plain Unicode, paste-anywhere-compatible. For Roman → decimal, the parser is strict: it rejects four-in-a-row (`IIII`, `XXXX`), forbidden repetitions (`VV`, `LL`, `DD`) and invalid subtractive pairs (`IL`, `IC`, `VX`, `XM`). Only the six standard subtractive pairs are accepted: `IV`, `IX`, `XL`, `XC`, `CD`, `CM`. A reference grid lists the 20 most useful value→symbol mappings (from 1 to 1,000,000), each clickable to load the value into the input. Plain-language rules are spelled out so users can learn alongside the conversion.
How to use it
- Pick the direction: Number → Roman or Roman → Number.
- Type the value. The conversion updates live.
- Click any reference row to load that value as a starting point.
- Use the Swap button to flip the output back into the input.
Benefits
- Range from 1 to 3,999,999 — the largest you'll see in practice.
- Canonical encoding for 1–3,999 plus the classical vinculum extension for 4,000–3,999,999.
- Vinculum rendered with U+0305 combining macron — plain Unicode, paste-anywhere.
- Strict parser rejects invalid patterns (IIII, VV, LL, DD, IL, IC, VX, XM).
- Reference grid covers all 20 essential value↔symbol mappings; click to insert.
- Plain-language rules and historical notes on the vinculum extension.
- Swap button flips the output back into the input field.
- Runs 100% in your browser — Toollyz has no server.
Frequently asked questions
Why is the maximum 3 999 999?
Standard Roman numerals (without vinculum) max out at 3 999 (MMMCMXCIX). With the vinculum extension — each letter overlined means × 1 000 — the cap becomes 3 999 999 (M̄M̄M̄C̄M̄X̄C̄IX̄CMXCIX).
What's a vinculum?
A bar drawn above a Roman numeral to multiply it by 1 000. V̄ = 5 000, X̄ = 10 000, M̄ = 1 000 000. Classical Romans used it for large numbers; medieval scribes mostly abandoned it.
Is 'IIII' a valid Roman numeral?
On clock faces, yes — many clocks show IIII instead of IV for aesthetic balance. Strictly, no: the canonical form for 4 is IV. Our parser rejects IIII.
What about 'IC' for 99?
Invalid. 99 is XCIX (90 + 9). The only valid subtractive pairs are IV, IX, XL, XC, CD, CM — each pair has the smaller-by-factor-of-5 or 10 immediately before a larger.
How do I type the overline?
When converting Roman → Decimal, you can paste a vinculum'd Roman from elsewhere (the U+0305 combining macron is preserved). Our parser also accepts the version where each macron immediately follows a letter.
How do I write the year 2026?
MMXXVI (1000 + 1000 + 10 + 10 + 5 + 1).
And the famous 1947?
MCMXLVII (1000 + (1000-100) + (50-10) + 5 + 1 + 1).
How are years like 1990 written?
MCMXC. Not MXM (which isn't valid). The subtractive rule applies one place at a time — 90 = XC, 900 = CM.
Does it support Unicode Roman numeral characters (Ⅰ, Ⅱ, Ⅲ)?
Not in this version. The Unicode Roman numeral block (U+2160–U+217F) is supported by very few fonts cleanly. We output ASCII Roman letters which render everywhere.
What about zero?
Romans had no symbol for zero. The minimum input is 1.
Is anything uploaded?
No. Conversion is a pure browser computation.
Related tools
See all converters toolsHexadecimal Converter
Bidirectional base 2 / 8 / 10 / 16 with BigInt precision.
Binary to Decimal
Binary → decimal with place-value table + IEEE 754 decoder.
Decimal to Binary
Decimal → binary with division-by-2 steps + IEEE 754 encoder.
Morse Code Translator
Text ↔ Morse with Web Audio playback at adjustable WPM.