Q: What do the letters stand for?
A: I = 1, V = 5, X = 10, L = 50, C = 100, D = 500, M = 1000.
Q: Why doesn't 1999 = MIM (or 99 = IC or 999 = IM
or ... )?
A: The rules for Roman numerals as I learned them include:
That is, you can only subtract I from V and X. You can only subtract X from L and C. And you can only subtract C from D and M. Or, in other words, subtraction is only done for (4 x 10n) and (9 x 10n). (That is, 4, 40, 400, 9, 90, and 900.)
Or, to put it a completely different way: When converting to Roman numerals, convert each digit separately. So for 999, convert 900, 90, and 9 to give CM, XC, and IX (CMXCIX). Note that the Romans themselves didn't necessarily follow these rules, but as with everything else in Western society, we created more rules for it as time passed.
For a more in-depth explanation of why even the Romans wouldn't have written 1999 as MIM, see "The Great 1999 Question" (off-site link).
Q: Why do clocks use IIII for four instead of IV?
A: For unknown reasons, it's become traditional to indicate the fourth hour as IIII on clocks instead of IV. (There are exceptions.) This apparently goes back to medieval times when the rules for Roman numerals were a bit different and less strict.
For a more in-depth explanation, see "Clocking the Fours " (off-site link).
Q: How do Roman numerals work?
A: That is a section unto itself.
Q: Can you send me the source code?
A: It seems writing an Arabic to Roman numeral converter is a fairly common assignment in beginning programming classes. I'm a firm believer in students doing their own work, so I will not give the source to anyone. But I have written a rather vague explanation of how the code works.
Q: Is there a Roman numeral to Arabic (decimal)
A: Yes, and it's right here! (Okay, so this probably won't be a FAQ now that I've written such a converter.) The reason I didn't write one sooner was solving the problem of verifying that a proper Roman numeral was input. I didn't solve it, but I had the brilliant idea of "verifying" the input by comparing it to the output of converting the answer back to a Roman numeral. (The original idea for this page was to convert between numerous number systems (e.g. octal, hexadecimal), but I never got around to it. I doubt I ever will.)
Q: Why is there a limit of 3999?
A: The highest "digit" available is M. Writing 4000 in Roman numerals would require subtracting 1000 (M) from 5000. There actually is a Roman numeral for 5000; it's V with a bar over it. Unfortunately, at the time the converter was written, doing this notation in HTML was difficult at best, so I simply limited the converter to 3999. Perhaps one day now that style sheets grant this ability, I'll get back to it. (But don't hold your breath waiting.)