Tell us what’s happening:
i cant see what i am doing wrong. is there anything i am missing?
Your code so far
<!-- file: index.html -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Converter</title>
</head>
<body>
<input id="number"/>
<button id="convert-btn">Convert</button>
<p id="output"></p>
<script src="script.js"></script>
</body>
</html>
/* file: styles.css */
/* file: script.js */
document.getElementById("convert-btn").addEventListener("click", () =>{
const input = document.getElementById("number").value;
const display = document.getElementById("output")
const number =+ input;
if(!input){
display.innerHTML = "Please enter a valid number"
return;
}
else if(number < 0){
display.innerHTML = "Please enter a number greater than or equal to 1"
}
else if (number > 3999){
display.innerHTML = "Please enter a number less than or equal to 3999"
}
else {
const result = convertNumToRoman(+input.value)
display.innerHTML = result;
}
})
function convertNumToRoman(num){
const val = [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1];
const syms = ["M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"];
let roman = "";
let i = 0;
while(num > 0){
const div = Math.floor(num / val[i]);
num -= div * val[i]
roman += syms[i].repeat(div)
i++
}
return roman;
}
Your browser information:
User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36
Challenge Information:
Build a Roman Numeral Converter Project - Build a Roman Numeral Converter