ForHosting KIT · 単位変換

ローマ数字変換ツール

普通の数字とローマ数字を双方向に変換できます。2026はMMXXVIになり、MMXXVIは2026と読み戻せます。標準でない書き方は推測せずに拒否するので、年号や章番号を正しく保てます。ブラウザで無料で使えます。

  • 無料
  • ブラウザで動作
  • 登録不要
  • データは端末の外に出ません
ご利用方法 ウェブAPIメールTelegramアプリ 近日
入力した場合
値
1
計算モード
To roman
結果
結果
I
入力値
1

アラビア数字の整数(1 から 3999)とローマ数字を双方向で変換します。

7つの文字と6つの引き算の組

ローマ数字は7つの文字を使います。Iが1、Vが5、Xが10、Lが50、Cが100、Dが500、Mが1000です。さらに6つの組では、小さい文字を大きい文字の前に置いて引き算を表します。IVは4、IXは9、XLは40、XCは90、CDは400、CMは900です。数を書くときは、この13の値のうちまだ収まる最大のものを選んで記号を書き、その値を引く操作を、残りがなくなるまで繰り返します。こうして2026はMMXXVIになり、結果は常に標準の最も短い形になります。

ローマ数字が今も使われる場面

映画のクレジットや銘板、本の扉では出版年や製作年を表し、目次や契約書ではI、II、IIIのように章や条項の番号に使われます。普通の数字に読み戻せば、古い参照を並べ替えるのに役立ちます。ゼロを表す数字はなく、古典的な記号で書ける最大の値は3999、つまりMMMCMXCIXです。読み取りでは、IIIIやICのような標準でない書き方を推測せずに拒否するため、入力ミスが気づかないうちに誤った数字になることはありません。

入力の扱いと 1..3999 の範囲

0 は存在せずそれを表す数字もなく、3999(MMMCMXCIX)が古典的な記号で表現できる最大値です。まず大文字化されますので "mmxxvi" のような大小混在や小文字も受け付けられ、その後 M・D・C・L・X・V・I の文字のみが現れるよう選別されます。応答は正規化した入力文字列と変換した結果を返します。

著作権と版の年

出版年や映画の年をローマ数字(例:2026 を MMXXVI)で表示し、クレジット・銘板・扉ページに用います。

アウトラインと条項の番号付け

I・II・III 形式の節の見出しを生成したり、旧来のローマ数字の参照を整数へ解析して並べ替えに用いたりします。

どの範囲の数値に対応していますか?

1 から 3999 までの整数です。0 を表す数字はなく、3999(MMMCMXCIX)が最大の古典的な値です。

IIII や IC を受け付けますか?

いいえ。 解析の後に数値を再エンコードして正確な一致を要求しますので、唯一の正準の綴りだけが有効です。

ゼロを表すローマ数字はありますか?

いいえ。ローマ数字にはゼロの記号がないため、変換できる最小の値は1です。ゼロ、負の数、小数は範囲外として拒否されます。

ローマ数字を小文字で入力できますか?

はい。読み取る前に大文字へ変換するため、mmxxvi と MMXXVI は同じ結果になります。大文字と小文字を気にせず、そのまま入力できます。

ローマ数字はどのように数値へ読み戻されますか?

左から右へ読み、まずCMやIXのような2文字の引き算の組を探し、なければ1文字ずつ読んで値を足し合わせます。I、II、IIIと番号の付いた古い参照を並べ替えるときに便利です。

このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。

POSThttps://api.kit.forhosting.com/dev/roman

Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。

curl -X POST https://api.kit.forhosting.com/dev/roman \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"mode":"to_roman","value":"2026"}'
{
  "mode": "to_roman",
  "value": "2026"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev.roman",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。

1リクエストあたり$0.002

単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。

min1
max3999
HTTPコード意味
401unauthorizedAPIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。
402insufficient_balance残高が不足しています。チャージ後に再度お試しください。
404unknown_type指定されたタスクタイプは存在しません。タイプ名を確認してください。
429rate_limitedリクエストが多すぎます。しばらく待ってから再度お試しください。

mode=to_roman は数値をローマ数字の文字列に変え、mode=to_arabic はローマ数字の文字列を数値へ解析し、正準でない綴りをすべて拒否します。

貪欲な減算式の変換

双方向とも、13 個の記号の組からなる 1 つの順序付き値の表を使います。M=1000、CM=900、D=500、CD=400、C=100、XC=90、L=50、XL=40、X=10、IX=9、V=5、IV=4、I=1 です。mode=to_roman はその表を大きいものから小さいものへたどり、残りの値がその重み以上である間は各記号を付け加え、進みながら減算しますので、2026 は MMXXVI に、4 は IIII ではなく IV になります。mode=to_arabic は文字列を左から右へ走査し、1 つの記号に頼る前に 2 文字の減算の組(CM や IX のような)を照合し、重みを合計します。この貪欲な方式こそが、出力を加算的な繰り返しではなく、適切な減算表記を用いた常に標準的な最短形にするものです。

入力の扱いと 1..3999 の範囲

value フィールドは文字列として記載されていますが、to_roman は素の整数や全桁の文字列も受け付け、それを Number で強制変換してから 1..3999 内の整数であるか検査します。その閉区間の外はいずれも invalid_input を送出します。to_arabic では value は文字列でなければなりません。

解析時の厳格な正準の検証

その往復の検査が、素朴なパーサーなら静かに受理してしまう IIII・VV・IC のような不正だが合計可能な文字列を拒否します。唯一の正準の綴りだけが再エンコードを生き延びるためです。to_arabic は記号を合計する以上のことをします。解析の後、その数値を to_roman で再エンコードし、その結果が大文字化した入力と正確に等しいことを要求し、さらに解析した値が 1..3999 に収まることを確認します。余計な文字、空の文字列、範囲外の値はいずれも、型のないクラッシュではなく型付きの invalid_input エラーを送出します。

ユーザー入力の数字の検証

to_arabic を使い、厳格な正準形で書かれている場合にのみローマ数字の文字列を受け付け、IIII や IC を拒否します。

小文字のローマ数字の入力を受け付けますか?

はい。to_arabic はまず文字列を大文字化しますので、"mmxxvi" は "MMXXVI" と同じに扱われます。

数値を文字列として渡せますか?

to_roman ではできます。"1990" のような全桁の文字列は数値に強制変換されます。to_arabic はローマ字の文字列を期待します。

無料ですか、また API の費用はいくらですか?

ブラウザ widget は無料です。API は前払いの KIT 残高で $0.002 から使い、失敗したタスクは課金されません。

KITの完全なドキュメントを見る →