ローマ数字とは?
ローマ数字は、I・V・X・L・C・D・Mを組み合わせて数を表します。ToolPipoでは、現在一般的なcanonical(標準)表記を採用しています。歴史上にはIIIIなどの表記揺れもありますが、出力と判定を一貫させるため標準表記以外は受け付けません。
ローマ数字の早見表
I1V5X10L50C100D500M1000
減算表記の早見表
IV4IX9XL40XC90CD400CM900
標準表記を厳密に判定
ローマ数字をいったん整数へ変換し、その整数を標準ローマ数字へ再変換します。再変換した文字列と正規化後の入力が完全一致した場合だけ有効とするため、IIII・VV・IL・IIV・MCMC・MMMMなどを誤って受け付けません。許可する減算組はIV・IX・XL・XC・CD・CMです。
小文字・Unicode・数字入力の扱い
xivはXIVへ、「Ⅳ」「ⅩⅣ」などのUnicodeローマ数字はASCIIのI・V・X・L・C・D・Mへ正規化して判定します。数字側では全角数字と前後空白、leading zeroに対応します。+記号、カンマ、小数、指数表記、0、負数、4000以上には対応しません。
3999より大きい数字と0
4000以上には上線など複数の拡張方式があるため、初版では独自方式を採用しません。また、古代ローマ数字体系には一般的な0表記がありません。後世にNなどが使われた例はありますが、このツールでは1〜3999だけを対象にします。