本ページには広告が含まれています。
アラビア数字をローマ数字に変換します。数値は半角で指定します。ローマ数字をアラビア数字に変換するにはARABIC関数 (自作関数)を使用します。
- 構文
- UString = ROMAN( num )
- 引数
- num 必須
- アラビア数字
- 戻り値
- ローマ数字に変換したアラビア数字
プログラム
//////////////////////////////////////////////////
// 【引数】
// num : アラビア数字
// 【戻り値】
// ローマ数字に変換したアラビア数字
//////////////////////////////////////////////////
FUNCTION ROMAN(num)
HASHTBL value
// 二重上線(×1,000,000)
value[1000000000] = "M̿"
value[900000000] = "C̿M̿"
value[500000000] = "D̿"
value[400000000] = "C̿D̿"
value[100000000] = "C̿"
value[90000000] = "X̿C̿"
value[50000000] = "L̿"
value[40000000] = "X̿L̿"
value[10000000] = "X̿"
value[9000000] = "I̿X̿"
value[5000000] = "V̿"
value[4000000] = "I̿V̿"
value[1000000] = "I̿"
// 一重上線(×1,000)
value[1000000] = "M̅"
value[900000] = "C̅M̅"
value[500000] = "D̅"
value[400000] = "C̅D̅"
value[100000] = "C̅"
value[90000] = "X̅C̅"
value[50000] = "L̅"
value[40000] = "X̅L̅"
value[10000] = "X̅"
value[9000] = "I̅X̅"
value[5000] = "V̅"
value[4000] = "I̅V̅"
value[1000] = "I̅"
// 標準
value[1000] = "M"
value[900] = "CM"
value[500] = "D"
value[400] = "CD"
value[100] = "C"
value[90] = "XC"
value[50] = "L"
value[40] = "XL"
value[10] = "X"
value[9] = "IX"
value[5] = "V"
value[4] = "IV"
value[1] = "I"
RESULT = ""
FOR i = 0 TO LENGTH(value) - 1
WHILE num >= VAL(value[i, HASH_KEY])
RESULT = RESULT + value[i, HASH_VAL]
num = num - VAL(value[i, HASH_KEY])
WEND
NEXT
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関数を使います。
- decToHex関数 (自作関数)
- 10進数を16進数に変換します。16進数を10進数に変換するにはhexToDec関数を使います。
- binToDec関数 (自作関数)
- 2進数を10進数に変換します。10進数を2進数に変換するにはdecToBin関数を使います。
- binToHex関数 (自作関数)
- 2進数を16進数に変換します。16進数を2進数に変換するにはhexToBin関数を使います。
- hexToBin関数 (自作関数)
- 16進数を2進数に変換します。2進数を16進数に変換するにはbinToHex関数を使います。
- decToBin関数 (自作関数)
- 10進数を2進数に変換します。2進数を10進数に変換するにはbinToDec関数を使います。
- hexToDec関数 (自作関数)
- 16進数を10進数に変換します。負数・小数の値にも対応しています。
- ABS関数 (スクリプト関数)
- 引数の絶対値を求めます。