本ページには広告が含まれています。
アラビア数字をローマ数字に変換します。数値は半角で指定します。ローマ数字をアラビア数字に変換するにはARABIC関数 (自作関数)を使用します。
- 構文
- UString = ROMAN( num )
- 引数
- num 必須
- アラビア数字
- 戻り値
- ローマ数字に変換したアラビア数字
プログラム
//////////////////////////////////////////////////
// 【引数】
// num : アラビア数字
// 【戻り値】
// ローマ数字に変換したアラビア数字
//////////////////////////////////////////////////
FUNCTION ROMAN(num)
DIM arr[][1] = 1, "I", + _
2, "II", + _
3, "III", + _
4, "IV", + _
5, "V", + _
6, "VI", + _
7, "VII", + _
8, "VIII", + _
9, "IX", + _
10, "X", + _
40, "XL", + _
50, "L", + _
90, "XC", + _
100, "C", + _
400, "CD", + _
500, "D", + _
900, "CM", + _
1000, "M"
DIM res = ""
n = UBound(arr)
REPEAT
SELECT TRUE
CASE num / arr[n][0] >= 1
res = res + arr[n][1]
num = num - arr[n][0]
DEFAULT
n = n - 1
SELEND
UNTIL num = 0
RESULT = res
FEND
//////////////////////////////////////////////////
// 【引数】
// inputs : 繰り返す文字列
// multiplier : inputsを繰り返す回数
// 【戻り値】
// inputsをmultiplier回を繰り返した文字列を返します
//////////////////////////////////////////////////
FUNCTION strRepeat(inputs, multiplier)
DIM res = ""
FOR n = 1 TO multiplier
res = res + inputs
NEXT
RESULT = res
FEND
//////////////////////////////////////////////////
// 【引数】
// arrayname : 上限値を求める配列の名前
// dimension : 返す次元を示す整数
// 【戻り値】
// 配列の上限値
//////////////////////////////////////////////////
FUNCTION UBound(arrayname[], dimension = 1)
RESULT = EVAL("RESIZE(arrayname" + strRepeat("[0]", dimension - 1) + ")")
FEND
アラビア数字・ローマ数字対応表
アラビア数字 | ローマ数字 |
---|---|
1 | I |
2 | II |
3 | III |
4 | IV |
5 | V |
6 | VI |
7 | VII |
8 | VIII |
9 | IX |
10 | X |
40 | XL |
50 | L |
90 | XC |
100 | C |
400 | CD |
500 | D |
900 | CM |
1000 | M |
使い方
アラビア数字をローマ数字に変換します。
DIM array[] = 9, 24, 51, 84, 104, 495, 658, 1250, 2684, 3945
FOR item IN array
PRINT item + "," + ROMAN(item)
NEXT
- 結果
9, IX 24, XXIV 51, LI 84, LXXXIV 104, CIV 495, CDXCV 658, DCLVIII 1250, MCCL 2684, MMDCLXXXIV 3945, MMMCMXLV
関連記事
- ARABIC関数 (自作関数)
- ARABIC関数は、ローマ数字をアラビア数字に変換する関数です。アラビア数字をローマ数字に変換するには、ROMAN関数を使います。
- radToDeg関数 (自作関数)
- 弧度法(Radian)を度数法(Degree)に変換します。度数法を弧度法に変換するにはDegToRad関数を使います。
- degToRad関数 (自作関数)
- 度数法(Degree)を弧度法(Radian)に変換します。弧度法を度数法に変換するにはRadToDeg関数を使います。
- binToDec関数 (自作関数)
- 2進数を10進数に変換します。10進数を2進数に変換するにはdecToBin関数を使います。
- binToHex関数 (自作関数)
- 2進数を16進数に変換します。16進数を2進数に変換するにはhexToBin関数を使います。
- hexToBin関数 (自作関数)
- 16進数を2進数に変換します。2進数を16進数に変換するにはbinToHex関数を使います。
- hexToDec関数 (自作関数)
- 16進数を10進数に変換します。10進数を16進数に変換するにはdecToHex関数を使います。
- decToBin関数 (自作関数)
- 10進数を2進数に変換します。負数・小数の値にも対応しています。
- decToHex関数 (自作関数)
- 10進数を16進数に変換します。16進数を10進数に変換するにはhexToDec関数を使います。
- ABS関数 (スクリプト関数)
- 引数の絶対値を求めます。