ローマ数字（ローマすうじ）は、数を表す記号の一種である。ラテン文字の一部を用い、例えばアラビア数字における 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 をそれぞれ I, II, III, IV, V, VI, VII, VIII, IX, X のように表記する。I, V, X, L, C, D, M はそれぞれ 1, 5, 10, 50, 100, 500, 1000 を表す。i, v, x などと小文字で書くこともある。現代の一般的な表記法では、1以上4000未満の数を表すことができる。

ローマ数字のことをギリシャ数字と呼ぶ例が見られるが、これは誤りである。

表記法 
ヴィクトリア朝時代に成立し、現代まで一般的に用いられている表記法。ただしこれを規定する公式な、あるいは広く知られた標準は存在していない。

十進法に基づいている。
数を10の冪ごとに、つまり 1000の位の量 + 100の位の量 + 10の位の量 + 1の位の量 と分解し、左からこの順番に書き下す。この際、空位の0は書かれることはない。位ごとに異なる記号が用いられるが、記号の組み合わせのパターンは共通である。

それぞれの位の量は更に上記の数字の和に分解され、大きい順に並べて書かれる。5未満はの繰り返しで表され、5以上はにをいくつか加える形で表される。（画線法）

また、小さい数を大きい数の左に書くこともあり、この場合右から左を減ずることを意味する。これを減算則という。

これらの数は減算則を使わず表現することも可能（例：4 を「」、9を「」）だが、通常は減算則を用いて表記する。なお、減算則が用いられるのは4 (40, 400) と9 (90, 900) を短く表記する場合だけであり、それ以外で使うことは通常行われない（例外は#異表記を参照のこと）。つまり、8を「」と表記したり、位ごとの分離を破って45を「」、999を「」と表記することは基本的でない書き方とされる。

以上を踏まえると、1 から 9 とその 10 倍と 100 倍、および1000、2000、3000は以下のような表記となる。

これらを組み合わせることで、1 から 3999 の値が表現できる。

なお、0 を表す記号は存在しない。また、（パターンを守ろうとすると）4000以上の数値を表すことは不可能である。更に、整数と小数が一貫しておらず、整数が十進法（二五進法）である一方、小数には十二進法が適用され、1/12や1/144の小数が作られている（→:en:Roman numerals#Special values）。小数は、3/12 (= 1/4)が「点3つ」、6/12 (= 1/2)が「S」、9/12 (= 3/4)が「Sに点3つ」として、六で一旦繰り上がる方法で表記されている。

ローマ数字の並べ方の例 

なお、手書きでは、大文字のローマ数字は上下のセリフをつなげて書くことが多い。「V」は上部のセリフをつなぎ、逆三角形（▽）のようになる。小文字ではセリフを書かない。

時計の文字盤での表記 
時計の文字盤は伝統的に4時を「」と表記することが多い。その由来には下記のように様々な説が唱えられているが定説はない。なお、9時は通常表記の「」の場合が多い。
 ローマ神話の最高神・ユピテル (IVPITER) の最初の2文字と重なるのを避けるため。
 4を「」と書くと「VI」と見分けにくいため。
 「IIII」ならば「I」という刻印を4回押せば文字盤の文字が作れるが、「IV」だと専用の型が必要になる。
 専用の文字を使うのは、ちょうど間が4時間おきになる V と X だけのほうがいい。
 「IIII」にすれば左側の「VIII」と文字数が釣り合い、見栄えがよい。
 特定の有力なローマの時計製造者が「IIII」と書いた時計を作ったため、他の製造者もそれに倣った。
 ルイ14世が、文字盤に「IV」を用いることを禁じた。
 シャルル4世が、「IV」を用いることを禁じた。

異表記 

 減算の文字を複数並べる。（例）8 = ，80 = 
 500 に「」を使わない。（例）1611 = 
 減算を行わない。（例）1495 = 
 任意の自然数 n に対し、10n を表す文字の前に、5m10n − 2 (m = 0, 1) 以下を表す文字を使う。（例）490 = -10 + 500 = 
 簡略表記。Microsoft Excel の ROMAN 関数で「書式4」を使用。（例）999 = 

ローマ数字はもともと厳密な規則が定義されたものではなく、特に減算則に関しては様々な異表記が見られる。当初は減算則が存在しなかったため、4 を「」、9 を「」と書いていた。「」（14世紀の著名な英語の料理解説書）は 4 = 、9 = と表記している一方で「」と表記した箇所もある。

ほかに、80 = 、2000 = とする異表記もある。また、 = 、 =  などとする分数の記号もあった。

大きな数字 
現代ではあまり使用されないが、4000以上の表記ができる。
 重ね表記
1000 を表すのに「M」ではなく「ↀ」または「CIↃ」を用いる場合もある。5000 を「ↁ」または「IↃↃ」、10000 を「ↂ」または「CCIↃↃ」で表した例もある。同様にして 50000 は「ↇ」または「IↃↃↃ」、100000 は「ↈ」または「CCCIↃↃↃ」となる。

 つなぎ表記
 通常のローマ数字に上線を付加することで、 倍を表現する。また二重上線では  倍となる。すなわちn重の上線は  倍を表す。
 4,000 =  = 
 5,300 = 
 6,723 =  = 
 9,999 =  = 
 51,200 = 
 99,999 = 
 500,000 = 
 921,600 = 
 3,000,000 = 
 9,125,334 = 
 91,200,937 = 
 235,002,011 = 

前後に縦線を付加することで、さらに  倍（都合  倍）を表す。
 800,000 = ||
 1,040,000 = || (= 10 × 1,000 × 100 + (-10 + 50) × 1,000) =  (= 1 × 1,000,000 + (-10 + 50) × 1,000)

用途 

現在、ローマ数字は序数、章番号、ページ番号、文章の脚注番号などに使うことが多いが、酸化銅(II)など一部例外がある。
 英語圏では、ローマ教皇や国王の名前に使用される。
 イギリスでは、大学の学年表記の他、BBCが番組の製作年を表すのにローマ数字を使っており、エンドクレジットの最後で下部分に「MMXIII (2013)」などと表示される。
 1980年代ごろまでは映画の著作権表示の制作年にローマ数字が使われることが多かった。例えば、1983年に発売されたタイトーの業務用ゲーム『エレベーターアクション』の著作権表記は「© TAITO CORP. MCMLXXXIII」となっている。
 音楽理論では、音階の中での音の位置を表すのにローマ数字を用いる。最もよく用いられるのは和音の調の中での位置を表す時である。大文字と小文字は場合によって様々な意味で使い分けられる。手書きでは「i」の点を打たないのが普通である（それはしかも逆感嘆符である「¡」と見分けにくいという欠点もある）。
 日本の公営競技の確定板でも、着順の表示に用いられている。
競馬の"GI"など、グレードを示す際にも利用される（グレード制）。
高等学校数学の科目名や大学入試類型など、教育部門で使用されている面が見られる。
ドラゴンクエストIIやファイナルファンタジーIIIなど、コンピュータゲームの続編ではローマ数字を使用したものがある。
陸上自衛隊の第14旅団、第15旅団などは部隊章にローマ数字を使用している。

ローマ数字の歴史 

古代ローマ人は元々農耕民族だった。羊の数を数えるのに木の棒に刻み目を入れた。柵から1匹ずつヤギが出て行くたびに刻み目を1つずつ増やしていった。3匹目のヤギが出て行くと「III」と表し、4匹目のヤギが出て行くと3本の刻み目の横にもう1本刻み目を増やして「IIII」とした。5匹目のヤギが出て行くと、4本目の刻み目の右にこのときだけ「V」と刻んだ（∧と刻んだ羊飼いもいた）。このときの棒についた刻み目は「IIIIV」となる。6匹目のヤギが出て行くと、刻み目の模様は「IIIIVI」、7匹目が出て行くと「IIIIVII」となる。9匹目の次のヤギが出て行くと「IIIIVIIII」の右に「X」という印を刻んだ。棒の模様は「IIIIVIIIIX」となる。31匹のヤギは「IIIIVIIIIXIIIIVIIIIXIIIIVIIIIXI」と表す。このように刻んだのは、夕方にヤギが1匹ずつ戻ってきたときに記号の1つ1つがヤギ1匹ずつに対応していたほうが便利だったためである。ヤギが戻ると、記号を指で端から1個1個たどっていった。最後のヤギが戻るときに指先が最後の記号にふれていれば、ヤギは全部無事に戻ったことになる。50匹目のヤギはN、+または⊥で表した。100匹目は＊で表した。これらの記号はローマのそばのエトルリア人も使った。エトルリアのほうが文明が栄えていたので、そちらからローマに伝わった可能性もある。1000は○の中に十を入れた記号で表した。

よく言われる「X」は「V」を2つ重ねて書いたもの、あるいは「V」は「X」の上半分という説は、誤りとは言い切れないが確たる根拠もないようである。

やがて時代が下り、羊以外のものも数えるようになると、31は単に「XXXI」と書くようになった。5はしばらく「V」と「∧」が混在して使われた。50は当初N、И、K、Ψ、などと書き、しばらく「⊥」かそれに似た模様を使ったが、アルファベットが伝わると混同して「L」となった。100は＊だけでなくЖ、Hなどと書いたが、＊がしだいに離れて「>|<」や「⊃|⊂」になり、よく使う数なので簡略になり、「C」や「⊃」と書きそのまま残った（ラテン語の"centum＝100"が起源という説もある）。500は最初、1000を表す「⊂|⊃」から左の⊂を外し、「|⊃」と書いた。やがて2つの記号がくっつき、「D」となった。「D」の真ん中に横棒がついて「D」や「」とも書いた。1000は○に十の記号が省略されて「⊂|⊃」となった。「∞」と書いた例もある。これが全部くっついたのが「Φ」に似た記号である。これが別の変形をし上だけがくっついて「m」に似た形になり、アルファベットが伝わると自然と「M」と書かれるようにもなった（ラテン語の"mille=1000"からも考慮されている）。そのため、1000は今でも2つの表記法が混在している。

5000以上の数は100と1000の字体の差から自然に決まった。ただし、「凶」を上下逆に書いた形（X）で1000000 (100万)を表したこともある。

古代ローマ共和国時代の算盤では、記号の上に横棒を引いて1000倍を表したものもある。この方法では、10000は「X」の上に横棒を1本引いたもので表される。100000 (10万) や1000000 (100万) は「C」や「M」の上に横棒を1本を引いて表した。たとえば10000は「X」となる。

例：CCX = 210000 (21万)

数字の上部分に「￣」・左右に「|」をそれぞれつけて10万倍を表すこともあった（上と左右の線をくっつけて表記することも多い）。たとえば10（X）を10万倍した数=1000000 (100万) は、「X」と表記する。

例：
|MCLII| XXXVII CCXXXII = 115237232 (1億1523万7232)
|MMCCCXXII| LXXI CCXXXVIII = 232271238 (2億3227万1238)

その後、他の文明との接触により変わった表記法が現れた。1世紀、プリニウスは著書『博物誌』で83000を「LXXXIII.M」と表記した。83.1000 (83の1000倍) という書き方である。同じ文書中に、XCII.M (92000)、VM (5000) という表記もある。この乗算則はしばらく使われたようである。1299年に作成された『王フィリップ4世の財宝帳簿』では、5316を「VmIIIcXVI」と表した。漢数字の書き方によく似ている。ただしこれらの乗算則は現在は使われない。

1000を超える数の表記法に混乱があるのは一般人は巨大な数を扱う機会がなかったためと考えられる。

その他 
 Microsoft Excel のROMANという関数は 0 から 3999 までの数をローマ数字に変換する。範囲外の数ではエラー値「#VALUE!」が表示される。なお、0の場合はエラー値でなく空文字列を返す。
 英語で100 ドル札を「C-bill」や「C-note」と呼ぶのはローマ数字の C に由来する。

文字コードにおけるローマ数字 
基本的には通常のラテン文字を並べてローマ数字を表現する。Unicode 以前から欧米で一般的に使用されている ISO/IEC 8859 などの文字コードは、ローマ数字専用の符号を持っていない。

JIS規格 
日本で用いられる文字コードとしても、JIS X 0208 にはローマ数字専用の符号は定義されていない。これを拡張した Microsoftコードページ932 (CP932) や MacJapanese などにおいて、いわゆる機種依存文字として定義されており、追って JIS X 0213 にも取り入れられた。CP932 にあるのは大文字 I から X と小文字 i から x の合成済み 20 字 (1 から 10 に相当)、MacJapanese にあるのは 大文字 I から XV と小文字 i から xv の合成済み 30 字 (1 から 15 に相当)、JIS X 0213 は大文字 I から XII と小文字 i から xii の合成済み 24 字 (1 から 12 に相当) である。これらは縦書きの組版の際に縦中横を容易に実現するために用いられ（一般の組版ルールでローマ数字は縦中横である）、多くのフォントで全角文字としてデザインされる。

Unicode 
Unicode は、JIS X 0213 などとの互換性のために上述の合成済みローマ数字を収録した上、その延長として 、また通常のラテン文字にない Ↄ, ↄ, ↀ, ↁ, ↂ, ↇ, ↈ, ↅ, ↆ も定義している。これらは U+2160 から U+2188 までの符号位置を割り当てられている。（Unicode 7.0.0 時点）〈登録領域〉Number Form（数字に準じるもの）

機械処理の注意点 
ラテン文字と共通の符号を用いるため、「I」「V」「X」「L」「C」「D」「M」が機械処理の際にアルファベットそのものを表しているのか、数字の「1」「5」「10」「50」「100」「500」「1000」を表しているのか解釈を誤る場合がある。

符号位置 
Unicodeに存在しないMacJapaneseのローマ数字 (XIII, XIV, XV, xiii, xiv, xv) は、Unicodeの私用領域にAppleが独自に定義した制御文字の後ろに組文字を構成する文字を続けることで表される。