romans$ = "MDCLXVI" decmls$ = "1000,500,100,50,10,5,1" sub romanDec(s$) local i, n, prev, res, decmls$(1) n = token(decmls$, decmls$(), ",") for i = len(s$) to 1 step -1 n = val(decmls$(instr(romans$, mid$(s$, i, 1)))) if n < prev n = 0 - n res = res + n prev = n next i return res end sub ? romanDec("MCMXCIX") // 1999 ? romanDec("MDCLXVI") // 1666 ? romanDec("XXV") // 25 ? romanDec("XIX") // 19 ? romanDec("XI") // 11 ? romanDec("CMLIV") // 954 ? romanDec("MMXI") // 2011 ? romanDec("CD") // 400 ? romanDec("MCMXC") // 1990 ? romanDec("MMVIII") // 2008 ? romanDec("MMIX") // 2009 ? romanDec("MDCLXVI") // 1666 ? romanDec("MMMDCCCLXXXVIII") // 3888