Build a Roman Numeral Converter Project - Build a Roman Numeral Converter

Tell us what’s happening:

Some numbers are not converted in the written code. Although everything should work correctly.

Your code so far

<!-- file: index.html -->

/* file: script.js */

/* file: styles.css */

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36

Challenge Information:

Build a Roman Numeral Converter Project - Build a Roman Numeral Converter

Please provide your code

Please post your full current code, including both the JS and HTML

const button = document.getElementById("convert-btn");
const output = document.getElementById("output");



function convertToRomanNumber(num){
    let converted = [];
    let numStr = String(num);
    if(num < 0){
        return "Please enter a number greater than or equal to 1";
    }else if(num >= 4000){
        return "Please enter a number less than or equal to 3999";
    }else if(numStr === ""){
        return "Please enter a valid number";
    }else{
    //if num is four digit
    if((num / 1000) >= 1){
        let floored = Math.floor(num / 1000);
        //thousands
        for(let i = 0; i < floored; i++){
            converted.push('M');
        }
        numStr = numStr.slice(1);
        floored = Math.floor(num / 500);
            //hunders
            if(numStr[0] === "5"){
                converted.push('D');
            }else if(numStr[0] === "9"){
                converted.push('CM');
            }else if(numStr[0] === "1" || numStr[0] === "2" || numStr[0] === "3"){
                let timeStr = '';
                for(let i = 0; i < parseInt(numStr[0]); i++){
                    timeStr += "C";
                }
                converted.push(timeStr);
            }else if(numStr[0] === "4"){
                converted.push("CD");
            }else if(numStr[0] === "6" || numStr[0] === "7" || numStr[0] === "8"){
                let timeStr = 'D';
                for(let i = 0; i < parseInt(numStr[0]); i++){
                    timeStr += "C";
                }
                converted.push(timeStr);
            }
        numStr = numStr.slice(1);
        floored = Math.floor(num / 1);
            // tens
            if(numStr[0] === "5"){
                converted.push("L");
            }else if(numStr[0] === "6" || numStr[0] === "7" || numStr[0] === "8"){
                let timeStr = "L";
                for(let i = 5; i < parseInt(numStr[0]); i++){
                    timeStr += "X";
                }
                converted.push(timeStr);
            }else if(numStr[0] === "9"){
                converted.push("XC");
            }else if(numStr[0] === "1" || numStr[0] === "2" || numStr[0] === "3"){
                let timeStr = '';
                for(let i = 0; i < parseInt(numStr[0]); i++){
                    timeStr += 'X';
                }
                converted.push(timeStr);
            }else if(numStr[0] === "4"){
                converted.push("LX");
            }
            numStr = numStr.slice(1);
            floored = Math.floor(num / 1);
                //one
                if(numStr[0] === "5"){
                    converted.push("V");
                }else if(numStr[0] === "4"){
                    converted.push("IV");
                }else if(numStr[0] === "9"){
                    converted.push("IX");
                }else if(numStr[0] === "1" || numStr[0] === "2" || numStr[0] === "3"){
                    let timeStr = "";
                    for(let i = 0; i < parseInt(numStr[0]); i++){
                        timeStr += "I";
                    }
                    converted.push(timeStr);
                }else if(num[0] === "6" || num[0] === "7" || num[0] === "8"){
                    let timeStr = "V";
                    for(let i = 5; i < parseInt(numStr[0]); i++){
                        timeStr += "I";
                    }
                    converted.push(timeStr);
                }
    }

    //if num is three digit
    else if((num / 100) >= 1){
        if(numStr[0] === "5"){
            converted.push('D');
        }else if(numStr[0] === "9"){
            converted.push('CM');
        }else if(numStr[0] === "1" || numStr[0] === "2" || numStr[0] === "3"){
            let timeStr = '';
            for(let i = 0; i < parseInt(numStr[0]); i++){
                timeStr += "C";
            }
            converted.push(timeStr);
        }else if(numStr[0] === "4"){
            converted.push("CD");
        }else if(numStr[0] === "6" || numStr[0] === "7" || numStr[0] === "8"){
            let timeStr = 'D';
            for(let i = 5; i < parseInt(numStr[0]); i++){
                timeStr += "C";
            }
            converted.push(timeStr);
        }
    numStr = numStr.slice(1);
    floored = Math.floor(num / 1);
        // tens
        if(numStr[0] === "5"){
            converted.push("L");
        }else if(numStr[0] === "6" || numStr[0] === "7" || numStr[0] === "8"){
            let timeStr = "L";
            for(let i = 5; i < parseInt(numStr[0]); i++){
                timeStr += "X";
            }
            converted.push(timeStr);
        }else if(numStr[0] === "9"){
            converted.push("XC");
        }else if(numStr[0] === "1" || numStr[0] === "2" || numStr[0] === "3"){
            let timeStr = '';
            for(let i = 0; i < parseInt(numStr[0]); i++){
                timeStr += 'X';
            }
            converted.push(timeStr);
        }else if(numStr[0] === "4"){
            converted.push("XL");
        }
        numStr = numStr.slice(1);
        floored = Math.floor(num / 1);
            //one
            if(numStr[0] === "5"){
                converted.push("V");
            }else if(numStr[0] === "4"){
                converted.push("IV");
            }else if(numStr[0] === "9"){
                converted.push("IX");
            }else if(numStr[0] === "1" || numStr[0] === "2" || numStr[0] === "3"){
                let timeStr = "";
                for(let i = 0; i < parseInt(numStr[0]); i++){
                    timeStr += "I";
                }
                converted.push(timeStr);
            }else if(num[0] === "6" || num[0] === "7" || num[0] === "8"){
                let timeStr = "V";
                for(let i = 5; i < parseInt(numStr[0]); i++){
                    timeStr += "I";
                }
                converted.push(timeStr);
            }
    }

    //if num is two digit
    else if((num / 10) >= 1){
        if(numStr[0] === "5"){
            converted.push("L");
        }else if(numStr[0] === "6" || numStr[0] === "7" || numStr[0] === "8"){
            let timeStr = "L";
            for(let i = 5; i < parseInt(numStr[0]); i++){
                timeStr += "X";
            }
            converted.push(timeStr);
        }else if(numStr[0] === "9"){
            converted.push("XC");
        }else if(numStr[0] === "1" || numStr[0] === "2" || numStr[0] === "3"){
            let timeStr = '';
            for(let i = 0; i < parseInt(numStr[0]); i++){
                timeStr += 'X';
            }
            converted.push(timeStr);
        }else if(numStr[0] === "4"){
            converted.push("LX");
        }
        numStr = numStr.slice(1);
        floored = Math.floor(num / 1);
            //one
            if(numStr[0] === "5"){
                converted.push("V");
            }else if(numStr[0] === "4"){
                converted.push("IV");
            }else if(numStr[0] === "9"){
                converted.push("IX");
            }else if(numStr[0] === "1" || numStr[0] === "2" || numStr[0] === "3"){
                let timeStr = "";
                for(let i = 0; i < parseInt(numStr[0]); i++){
                    timeStr += "I";
                }
                converted.push(timeStr);
            }else if(numStr[0] === "6" || numStr[0] === "7" || numStr[0] === "8"){
                let timeStr = "V";
                for(let i = 5; i < parseInt(numStr[0]); i++){
                    timeStr += "I";
                }
                converted.push(timeStr);
            }
    }

    //if num is one digit
    else if(num < 10){
        if(numStr[0] === "5"){
            converted.push("V");
        }else if(numStr[0] === "4"){
            converted.push("IV");
        }else if(numStr[0] === "9"){
            converted.push("IX");
        }else if(numStr[0] === "1" || numStr[0] === "2" || numStr[0] === "3"){
            let timeStr = "";
            for(let i = 0; i < parseInt(numStr[0]); i++){
                timeStr += "I";
            }
            converted.push(timeStr);
        }else if(num[0] === "6" || num[0] === "7" || num[0] === "8"){
            let timeStr = "V";
            for(let i = 5; i < parseInt(numStr[0]); i++){
                timeStr += "I";
            }
            converted.push(timeStr);
        }
    }

    return converted.join('');
}
}

button.onclick = function() {
    let number = document.getElementById("number").value;
    output.innerText = convertToRomanNumber(number);
}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="styles.css">
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link href="https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,200..1000;1,200..1000&display=swap" rel="stylesheet">
    <title>Roman Numeral Converter</title>
</head>
<body>
    <div class="main-box">
        <div class="box-header">
            <h1 id="header-application">ROMAN NUMERAL CONVERTER</h1>
            <p id="header-description">by wenwotrader</p>
        </div>
        <div class="main-input">
            <p>Enter a Number:</p>
            <input id="number" type="number">
            <button id="convert-btn" type="submit">Convert</button>
        </div>
        <div class="main-result">
            <p id="output"></p>
        </div>
    </div>
    <script src="script.js"></script>
</body>
</html>

Your code is too long for the challenge project. The error appears on:
Sorry, you cannot submit your code. Your code is 317861 bytes. We allow a maximum of 102400 bytes. Please make your code smaller and try again or request assistance on https://forum.freecodecamp.org. you have lot’s of hard code in your js code.