Roman number converter

September 21, 2020

While finishing up the JavaScript lessons in Free Code Camp we had to build a Roman numeral converter to take a number from 1 to 3999* and convert it to the Roman numerals. Spending some time with it I thought this would be a good program to create a web app. I created a pen on my codepen page, link to pen, go and play with it:

User Interface:

I created a basic user interface, using HTML and CSS. It has a single input field, limited to 4 characters and a convert button, to activate the code. The Roman numerals will show at the bottom when converted.

The Code:

My solution to this issue was to take the number and first convert it to 4 digits so if the number for 3 it would convert it to ‘0003’. From there I converted it to a string that way I can process it like an array.

It will look kind of like this:
[0, 0, 0, 3]
[thousand, hundred, ten, one]

Each area will then be sent to a separate function to process to process it with Roman numeral’s special rules in conversion based on its place in that string. For example, a one in the ones spot ‘I’ is not the same as a one in the tens spot ‘C’. From there the parts will be reassembled into its own string and passed into the HTML to be displayed below the ‘convert’ button.

For example number = ‘197’
Since there is a zero in the first spot number[0] this will go into the functions and return empty string ‘’.
Number[1] is a one and going through the hundreds convert function and uses that logic to know  this one is a 100 and returns a ‘C’ for this function.
Number[2] which is a nine will get passed in and since it’s in the tens location it will convert to ‘XC’ in the function.
Number[3] the five gets passed into the convert ones function since this is more than five it will add the ‘V’ then miss 5 from the number and times what is left with a the ones symble ‘I’ to ultimately return ‘VII’ from the function.

In the end all the functions will be merged together and sent to the HTML file to show the converted number to the Roman numeral version, ‘CXCVII’.

As for error handling, there’s not much to the app but to help keep it from crashing or giving weird answers. The input field is already set to only accept up to four characters but that doesn’t stop somebody from putting in 9999 or ABCD. To cover for that the program checks if the number is over 3999 or is not a number if either of these happen it will display an error message; go ahead and give it a try, it won’t explode.

*Numbers over 3,999 have a different formatting where the when it hits 4,000 the four IV will have a line above it.

Related Articles

Python – Birthday List

Python – Birthday List

Birthday List Python Program Worked on a project for a publication to pull the birthdays of their members quickly. To help demonstrate what they were working with; they had two Word files containing tables of birthday months, the dates for the month were not in order...

read more
Microsoft Certified: Azure AI Fundamentals

Microsoft Certified: Azure AI Fundamentals

Passed the Microsoft Certified: Azure AI Fundamentals Certification:https://learn.microsoft.com/api/credentials/share/en-us/LynnAmacher-1690/4DB4563B79AA3C11?sharingId=9196330BBB36EAF4 The graphic was created in Microsoft Image creator with DALL-E where I added the...

read more
AI as your assistant

AI as your assistant

With all the talk of AI will be taking your job and articles like you don’t need to learn coding AI will do it all for you. I’ve been playing around with AI, decided to try to see how much of what AI can be done for me. I use AI generical throughout the post and not...

read more

Pin It on Pinterest

Share This