ROMANローマン関数

本ページには広告が含まれています。

アラビア数字をローマ数字に変換します。数値は半角で指定します。ローマ数字をアラビア数字に変換するにはARABIC関数 (自作関数)を使用します。

構文
  1. UString = ROMAN( num )
引数
num 必須
アラビア数字
戻り値
ローマ数字に変換したアラビア数字

プログラム

UWSC
//////////////////////////////////////////////////
// 【引数】
//   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

使い方

アラビア数字をローマ数字に変換します。

UWSC
DIM array[] = 9, 24, 51, 84, 104, 495, 658, 1250, 2684, 3945

FOR item IN array
	PRINT item + "," + ROMAN(item)
NEXT
結果
CSV
9,      IX
24,     XXIV
51,     LI
84,     LXXXIV
104,    CIV
495,    CDXCV
658,    DCLVIII
1250,   MCCL
2684,   MMDCLXXXIV
3945,   MMMCMXLV

関連記事

ARABIC関数 (自作関数)
ローマ数字アラビア数字に変換します。
radToDeg関数 (自作関数)
弧度法から度数法に変換します。
degToRad関数 (自作関数)
度数法から弧度法に変換します。
decToHex関数 (自作関数)
10進数を16進数に変換します。負数・小数の値にも対応しています。
binToDec関数 (自作関数)
2進数を10進数に変換します。負数・小数の値にも対応しています。
binToHex関数 (自作関数)
2進数を16進数に変換します。負数・小数の値にも対応しています。
hexToBin関数 (自作関数)
16進数を2進数に変換します。負数・小数の値にも対応しています。
decToBin関数 (自作関数)
10進数を2進数に変換します。負数・小数の値にも対応しています。
hexToDec関数 (自作関数)
16進数を10進数に変換します。負数・小数の値にも対応しています。
ABS関数 (スクリプト関数)
引数の絶対値(\(|x|\))を返します。