Неравенство, не отображающее правильный вывод, JS - PullRequest
0 голосов
/ 05 июля 2018

Я пытаюсь сделать простой калькулятор итоговой оценки, и у меня возникают проблемы с выводом неравенства. Он состоит из 4 классов, каждый из которых имеет двойное значение. Затем они умножаются на их уважаемый вес и включаются в ряд неравенств, чтобы увидеть, какую оценку получит участник. К сожалению, я получаю неправильное буквенное значение, хотя двойное значение является правильным. Я предполагаю, что это мое неравенство, но я не могу понять, что с ними не так. Любая помощь с благодарностью!

Я не хотел включать весь код, потому что он много, но все они соответствуют своим отдельным выпадающим меню, подобным этому.

<form name="GPA">
            <select name="demoSelect" onchange="showData2()">
        <option value="zilch">Select Quarter 1:</option>
        <option id="4.0" >A</option>
        <option id="3.5" >B+</option>
        <option id="3.0" >B</option>
        <option id="2.5" >C+</option>
        <option id="2.0" >C</option>
        <option id="1.5" >D</option>
        <option id="0.0" >F</option>
    </select>
        </form>

Конец формы

function showData() {
        var theSelect = GPA.demoSelect;
        var firstGrade = document.getElementById('firstGrade');
        firstGrade.innerHTML = (theSelect[theSelect.selectedIndex].id);
        var grade = theSelect[theSelect.selectedIndex].id;
        var finalGrade = parseFloat(grade);

        var theSelect = GPA2.demoSelect2;
        var secondGrade = document.getElementById('secondGrade');
        secondGrade.innerHTML = (theSelect[theSelect.selectedIndex].id);
        var grade2 = theSelect[theSelect.selectedIndex].id;
        var finalGrade2 = parseFloat(grade2);

        var theSelect = GPA3.demoSelect3;
        var secondGrade = document.getElementById('thirdGrade');
        thirdGrade.innerHTML = (theSelect[theSelect.selectedIndex].id);
        var grade3 = theSelect[theSelect.selectedIndex].id;
        var finalGrade3 = parseFloat(grade3);

        var theSelect = GPA4.demoSelect4;
        var forthGrade = document.getElementById('forthGrade');
        forthGrade.innerHTML = (theSelect[theSelect.selectedIndex].id);
        var grade4 = theSelect[theSelect.selectedIndex].id;
        var finalGrade4 = parseFloat(grade4);


        var FinalCalc = ((finalGrade * 0.2) + (finalGrade2 * 0.3) + (finalGrade3 * 0.2) + (finalGrade4 * 0.3));

        if (FinalCalc >= 3.75) {
            document.getElementById("output2").innerHTML = "A";
        } else if (FinalCalc >= 3.25 && FinalCalc < 3.75) {
            document.getElementById("output2").innerHTML = "B+";

        } else if (FinalCalc >= 2.75 && FinalCalc < 3.25) {
            document.getElementById("output2").innerHTML = "B";

        } else if (FinalCalc >= 2.25 && FinalCalc < 2.75) {
            document.getElementById("output2").innerHTML = "C+";

        } else if (FinalCalc >= 1.75 && FinalCalc < 2.25) {
            document.getElementById("output2").innerHTML = "C";

        } else if (FinalCalc >= 1.25 && FinalCalc < 1.75) {
            document.getElementById("output2").innerHTML = "D";

        } else if (FinalCalc < 1.25) {
            document.getElementById("output2").innerHTML = "F";

        }
        document.getElementById("output").innerHTML = FinalCalc;

    }

1 Ответ

0 голосов
/ 05 июля 2018

Часть, которую вы предоставили, работает нормально:

function showData() {
        var theSelect = GPA.demoSelect;
        var firstGrade = document.getElementById('firstGrade');
        firstGrade.innerHTML = (theSelect[theSelect.selectedIndex].id);
        var grade = theSelect[theSelect.selectedIndex].id;
        var finalGrade = parseFloat(grade);

        var FinalCalc = finalGrade * 0.2
        //var FinalCalc = ((finalGrade * 0.2) + (finalGrade2 * 0.3) + (finalGrade3 * 0.2) + (finalGrade4 * 0.3));


        if (FinalCalc >= 3.75) {
            document.getElementById("output2").innerHTML = "A";
        } else if (FinalCalc >= 3.25 && FinalCalc < 3.75) {
            document.getElementById("output2").innerHTML = "B+";

        } else if (FinalCalc >= 2.75 && FinalCalc < 3.25) {
            document.getElementById("output2").innerHTML = "B";

        } else if (FinalCalc >= 2.25 && FinalCalc < 2.75) {
            document.getElementById("output2").innerHTML = "C+";

        } else if (FinalCalc >= 1.75 && FinalCalc < 2.25) {
            document.getElementById("output2").innerHTML = "C";

        } else if (FinalCalc >= 1.25 && FinalCalc < 1.75) {
            document.getElementById("output2").innerHTML = "D";

        } else if (FinalCalc < 1.25) {
            document.getElementById("output2").innerHTML = "F";

        }
        document.getElementById("output").innerHTML = FinalCalc;

    }

Проверьте это здесь: http://jsfiddle.net/wjvkg8q9/15/

Обратите внимание, что ваша функция называется showData (), а событие onchange вызывает showData 2 () Возможно ли, что вы редактируете неправильную дублированную функцию в оставшейся части кода?

П.С .: Я прокомментировал другие переменные класса в скрипке, но, как вы сказали, они соответствуют.

...