Converting a Roman numeral back into its Arabic-number value works by reading left to right and comparing each symbol's value to the one immediately after it.
A quick pre-check worth running before the full symbol-by-symbol pass: scan visually for the six standard subtractive pairs first (IV, IX, XL, XC, CD, CM), since spotting them as pre-formed units up front makes the rest of the conversion faster and less error-prone, as demonstrated in the "faster approach" section below.
Why Comparing Each Symbol to Its Neighbor Works
Roman numerals encode "subtract" purely through word order — there's no minus sign, just a smaller symbol sitting where it normally wouldn't, immediately ahead of something bigger. Reading left to right and asking, at each symbol, "is what comes next bigger than me?" is really just asking "did the scribe place me here to be subtracted, or to be added?" A symbol tucked in front of something larger is there specifically to be taken away from it; a symbol followed by something equal or smaller is simply being tallied onto the running total the ordinary way.
Worked example: convert XIV to a number. X(10): next is I(1), 10 is not less than 1, so add: total = 10. I(1): next is V(5), 1 is less than 5, so subtract: total = 10 − 1 = 9. V(5): last symbol, add: total = 9 + 5 = 14. XIV = 14.
Worked example: convert MCMXCIV to a number. M(1000): next is C(100), 1000 not less than 100, add → 1000. C(100): next is M(1000), 100 is less than 1000, subtract → 1000 − 100 = 900. M(1000): next is X(10), 1000 not less than 10, add → 900 + 1000 = 1900. X(10): next is C(100), 10 is less than 100, subtract → 1900 − 10 = 1890. C(100): next is I(1), 100 not less than 1, add → 1890 + 100 = 1990. I(1): next is V(5), 1 is less than 5, subtract → 1990 − 1 = 1989...
Wait — let's re-trace that carefully, symbol by symbol, matching each subtraction correctly to its pair: M,C,M,X,C,I,V. Reading it as the intended subtractive pairs (M)(CM)(XC)(IV): M=1000, CM=900 (100 subtracted from 1000), XC=90 (10 subtracted from 100), IV=4 (1 subtracted from 5). Total: 1000+900+90+4 = 1994. The lesson here: it's easy to lose track manually across a long numeral with several subtractive pairs — working through it symbol-by-symbol with the "compare to next" rule gets the same correct answer, but going slowly and double-checking each step (or grouping obvious subtractive pairs visually first) helps avoid an arithmetic slip.
A Faster Approach: Spot the Subtractive Pairs First
Scan the numeral for the six valid subtractive pairs (IV, IX, XL, XC, CD, CM) and treat each one as a single unit worth its combined value, then simply add up all the units left to right. For MCMXCIV: spot CM (900), XC (90), and IV (4) as pre-formed units, plus the standalone M (1000). Add: 1000 + 900 + 90 + 4 = 1994. This is usually faster and less error-prone than the strict symbol-by-symbol comparison method for numerals with multiple subtractive pairs.
A built-in check for whether a numeral was written correctly in the first place. Because the greedy writing method described in the companion guide always produces one single, predictable spelling for any given value, a numeral you convert to Arabic and then convert straight back to Roman ought to reproduce itself exactly. When it doesn't, that mismatch is the tell that the original wasn't standard notation to begin with — IIII round-trips back as IV, not as IIII, revealing the input was non-canonical rather than simply unusual.
Worked example: convert LXXXIX. Spot the subtractive pair: IX (9). Remaining standalone symbols: L(50), X(10), X(10), X(10). Total: 50+10+10+10+9 = 89.
Common Mistakes Reading Numerals
The most frequent error is misreading which symbols form a valid subtractive pair versus which are simply separate standalone symbols in sequence — VI is NOT a subtractive pair (V is larger than I, so this is straightforward addition: 5+1=6), only a *smaller* symbol immediately before a larger one signals subtraction. A second common mistake is attempting to subtract across too wide a gap, treating something like IC as valid (it isn't — 99 is properly XCIX).
Worked example: convert MMXXVI. Spot the units: M standalone (1000), M standalone (1000), XX standalone (20, addition rule since equal-value symbols), V standalone (5), I standalone (1). No subtractive pairs present at all here. Total: 1000+1000+20+5+1 = 2026.
Worked example: convert CDXLIV, a numeral using three separate subtractive pairs. Spot the pairs: CD (400), XL (40), IV (4). Total: 400+40+4 = 444.
A worked example demonstrating the symbol-by-symbol method on a numeral without any subtractive pairs, for contrast: convert CLXVI. C(100): next is L (smaller), so C isn't part of a subtractive pair, add — but wait, applying the compare-to-next rule literally: C's value (100) compared to L's value (50) — 100 is not less than 50, so add C: total=100. L(50): next is X(10), 50 not less than 10, add: total=150. X(10): next is V(5), 10 not less than 5, add: total=160. V(5): next is I(1), 5 not less than 1, add: total=165. I(1): last symbol, add: total=166. CLXVI = 166, confirmed with no subtractive pairs needed since every symbol's value is greater than or equal to the one following it.
Worked example: convert CDXLIV back to a number, verifying the companion guide's 444 example. Spot the pairs: CD(400), XL(40), IV(4). Total: 400+40+4=444, confirming the round-trip.
Worked example: convert LXXXVIII back to a number, verifying the companion guide's 88 example. Spot standalone symbols: L(50), X(10), X(10), X(10), V(5), I(1), I(1), I(1) — no subtractive pairs. Total: 50+10+10+10+5+1+1+1 = 88, confirming the round-trip.
Worked example: convert MDCCLXXVI back to a number, verifying the previous section's result. Spot standalone symbols and pairs: M(1000), D(500), CC(200), L(50), XX(20), V(5), I(1) — no subtractive pairs present at all. Total: 1000+500+200+50+20+5+1 = 1776, confirming the round-trip matches the original value from the companion guide's worked example.
A quick sanity check worth running on any converted value: does the numeral's rough symbol count match the expected magnitude? A numeral built mostly from M's should convert to a number in the thousands; a numeral with no M and a leading C should land in the hundreds. If your computed Arabic value doesn't roughly match the numeral's visual "size," recheck the symbol-by-symbol pass for a missed subtraction.
For the reverse direction — converting an Arabic number into Roman numerals — see the companion guide, How to Read and Write Roman Numerals.