File size: 419 Bytes
d605f27
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

function romanize (num) {
	if (!Number.isFinite(num))
		return "E_NaN";

	if (num > 1e+6)
		return "E_LARGE";

	if (num <= 0)
		return "E_NON_POSITIVE";

	const lookup = {M:1000,CM:900,D:500,CD:400,C:100,XC:90,L:50,XL:40,X:10,IX:9,V:5,IV:4,I:1};
	let roman = "";
	for (const word in lookup) {
		while (num >= lookup[word]) {
			roman += word;
			num -= lookup[word];
		}
	}

	return roman;
}



export {
	romanize,
};