ROMAN関数をJavaScriptで

Excelのワークシート関数に「ROMAN」があります。整数をローマ数字に変換します。
これをJavaScriptで書いてみました。
Excelと同様に3999まで対応しています。

function vb_roman(num) {
  if(num < 0 | num > 3999) {
    return "";
  }
  ar1 = ["", "M", "MM", "MMM"];
  ar2 = ["", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"];
  ar3 = ["", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC", "C"];
  ar4 = ["", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X"];
  r = ar1[Math.floor(num / 1000) % 10];
  r += ar2[Math.floor(num / 100) % 10];
  r += ar3[Math.floor(num / 10) % 10];
  r += ar4[num % 10];
  return r;
}

しかし面倒な表記をしていたものだと感心します。

2018年9月8日追記
Text2Whatで試せます。

コメント

タイトルとURLをコピーしました