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関数 (自作関数)
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関数 (スクリプト関数)
引数の絶対値を求めます。