ARABIC

ローマ数字をアラビア数字に変換します。機種依存文字(環境依存文字)ではなくアルファベットで指定してください。

構文
  1. Double = ARABIC( str )
引数
str
ローマ数字を文字列で指定
戻値
変換したアラビア数字

プログラム

////////////////////////////////////////////////// // 【引数】 // str : ローマ数字を文字列で指定 // 【戻値】 // 変換したアラビア数字 ////////////////////////////////////////////////// FUNCTION ARABIC(str) DIM arr[][1] = "IV", "IIII", + _ "IX", "VIIII", + _ "XL", "XXXX", + _ "XC", "LXXXX", + _ "CD", "CCCC", + _ "CM", "DCCCC" DIM Roman[] = "I", "V", "X", "L", "C", "D", "M" DIM Arbic[] = 1, 5, 10, 50, 100, 500, 1000 FOR n = 0 TO UBound(arr) num = REPLACE(str, arr[n][0], arr[n][1]) NEXT DIM res = 0 FOR s = 1 TO LENGTH(num) FOR ss = UBound(Arbic) TO 0 STEP -1 IFB COPY(str, s, 1) = Roman[ss] THEN res = res + Arbic[ss] ENDIF NEXT NEXT IF res <= 0 OR res >= 4000 THEN res = -1 RESULT = res FEND ////////////////////////////////////////////////// // 【引数】 // 配列 : 上限値を求める配列 // 【戻値】 // 配列の上限値 ////////////////////////////////////////////////// FUNCTION UBound(array[]) RESULT = RESIZE(array) 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

この記事は役に立ちましたか?
役に立った 役に立たなかった