convert-romans
Version:
Uma biblioteca que converte algarismos romanos para arábicos e arábicos para romanos.
39 lines (33 loc) • 1.08 kB
JavaScript
const romansAlgarism = ["M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"];
const arabicsAlgarism = [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1];
function romanToInt(str) {
if (str === '' || str === undefined || typeof str != 'string') {
throw new Error('Insira um algarismo romano.')
}
let arabics = 0;
for (let i = 0; i <= arabicsAlgarism.length; i++) {
while (str.indexOf(romansAlgarism[i]) === 0) {
arabics += arabicsAlgarism[i];
str = str.replace(romansAlgarism[i], '');
}
}
return arabics;
}
function intToRoman(num) {
if (num === '' || num === undefined || typeof num != 'number') {
throw new Error('Insira um número decimal.')
}
if (num <= 0) {
throw new Error('Insira um número maior que 0.')
}
let romans = '';
for (let i = 0; i < romansAlgarism.length; i++) {
while (num >= arabicsAlgarism[i]) {
num -= arabicsAlgarism[i];
romans += romansAlgarism[i];
}
}
return romans;
}
module.exports.intToRoman = intToRoman;
module.exports.romanToInt = romanToInt;