工具 指南
Converter 免费 无需注册

Roman Numeral Converter (Advanced)

Convert between Roman numerals and decimals with vinculum support

正在加载工具…

关于此工具

Bidirectional converter for Roman numerals and decimal numbers supporting values up to 4,999,999 using vinculum notation (a bar over a numeral multiplies it by 1,000). Type a decimal to get the Roman numeral or type Roman numerals to get the decimal value. A history of your last 10 conversions is saved locally, and a full reference table of all Roman symbols and their values is always visible below.

使用方法

  1. 1 Type a decimal number (1–4,999,999) in the left field to convert to Roman numerals.
  2. 2 Or type Roman numeral characters in the right field to convert to decimal.
  3. 3 Numbers above 3,999 use vinculum notation shown with an overline.
  4. 4 Review the full symbol table at the bottom for a quick reference guide.

How Roman numerals encode a number

Roman numerals are an additive-subtractive system built from seven base letters: I (1), V (5), X (10), L (50), C (100), D (500), and M (1000). You write a number by laying down the largest values first and adding as you go — so MMXXIII is 1000 + 1000 + 10 + 10 + 1 + 1 + 1 = 2023. The twist is the subtractive rule: to avoid four identical letters in a row, a smaller symbol placed before a larger one is subtracted. That gives IV = 4 (not IIII), IX = 9, XL = 40, XC = 90, CD = 400, and CM = 900. This converter knows all six of those pairs and uses them automatically, so the output is always the canonical, minimal form.

Converting decimal to Roman: greedy subtraction

To turn a number into a numeral, the tool walks a table of values from largest to smallest — including the subtractive pairs — and repeatedly subtracts each value while appending its symbol. For 1994: it subtracts 1000 (M), then 900 (CM), then 90 (XC), then 4 (IV), reaching zero. The result is MCMXCIV. Because the table is ordered and the subtractive pairs are baked in, this "greedy" approach always produces the correct standard form without backtracking.

The vinculum: going past 3,999

Classic Roman numerals stop being practical around 3,999 (MMMCMXCIX) because you'd need four or more M's for larger numbers. The historical fix is the vinculum: a bar drawn over a numeral multiplies its value by 1,000. So is 5,000, is 10,000, and is 1,000,000. This tool supports the full vinculum range up to 4,999,999. When you enter a number above 3,999, it switches to an extended table that includes the barred symbols. For example, 10,000 becomes , and 4,000 — which would awkwardly need four M's — is written MV̄ (1,000 added to a subtractive 5,000−1,000 idea, rendered as M before V̄).

A worked example both directions

Type 2024 and the tool produces MMXXIV: M (1000) + M (1000) + X (10) + X (10) + IV (4). Now reverse it. To read a numeral back to a number, the tool scans left to right and applies one rule: if a symbol's value is less than the symbol to its right, subtract it; otherwise add it. For MMXXIV: M+M+X+X = 2020, then I is less than the following V so it subtracts (−1), then V adds (+5), giving 2020 − 1 + 5 = 2024. The same subtraction logic handles the vinculum glyphs, which the parser recognizes as single tokens worth thousands.

Genuine use cases

  • Reading dates and copyright years. Decode the MCMLXXXIV at the end of a film or on a building cornerstone (it's 1984).
  • Clock faces and book chapters. Generate numerals for design work, outlines, or watch dials.
  • Large historical or formal numbers. The vinculum support lets you express values like regnal counts, year ranges, or stylized figures that exceed 3,999.
  • Checking homework. Bidirectional conversion lets students verify their hand conversions instantly, and the symbol reference table doubles as a study aid.

Tips and common mistakes

  • One field at a time. Typing in the decimal box clears the Roman box and vice versa, so the tool never tries to convert two conflicting inputs. Fill one and convert.
  • Stay within 1 to 4,999,999. Zero, negatives, and anything above 4,999,999 are rejected — Roman numerals have no symbol for zero or negative quantities.
  • Subtractive pairs are limited. Only the six standard pairs are valid; strings like IC for 99 are not legitimate Roman numerals (the correct form is XCIX), so write numbers the canonical way.
  • The parser is lenient on input but strict on output. It will read most well-formed numerals, but it always emits the standard minimal form — so converting in and back out normalizes any nonstandard spelling.
  • History is local and capped at 10. Your last 10 conversions are saved in the browser's storage for quick reference and can be cleared anytime; nothing is sent to a server.

常见问题

{# Alpine.js — self-hosted. (The previous jsdelivr CDN tag had a stale SRI integrity hash, so the browser refused to run it and window.Alpine was never defined — silently breaking every FAQ accordion and Alpine tool.) #}