Добавление Вар вместе - PullRequest
0 голосов
/ 05 марта 2020

Я делал калькулятор, потому что мне было скучно, и я столкнулся с проблемой, когда я пытаюсь выполнить «x + y» (в то время как x = 4 и y = 2), я получаю 42 вместо 6, может кто-то объяснить, пожалуйста это? (Я использую Edge)

вот JS:

function myFunction1() {
    var x = document.getElementById("myText1").value;
    var y = document.getElementById("myText2").value;
    var z = document.getElementById("myText3").value;
    var a = x + y;
    if (z == "+") {
    document.getElementById("demo3").innerHTML = a;
    }

    if (z == "-") {
    document.getElementById("demo3").innerHTML = x - y;
    }

    if (z == "*") {
    document.getElementById("demo3").innerHTML = x * y;
    }

    if (z == "/") {
    document.getElementById("demo3").innerHTML = x / y;
    }

}

HTML:

<p>Your Problem:<br/><br/>
  <input name="myText" id="myText1" type="text" size="7"> <input name="myText" id="myText3" type="text" maxlength="1" size="1"> <input name="myText" id="myText2" type="text" size="7"> = <span id="demo3"></span>
</p>
<p>
  <button onclick="myFunction1()">Calculate</button>
</p>

И страница / результат:

enter image description here

1 Ответ

1 голос
/ 05 марта 2020

Это потому, что вы пытаетесь добавить строки вместе. Вам нужно использовать parseInt, чтобы получить числовую часть строки. Подробнее о parseInt здесь .

function myFunction1() {
    var x = parseInt(document.getElementById("myText1").value);
    var y = parseInt(document.getElementById("myText2").value);
    var z = document.getElementById("myText3").value;
    var a = x + y;
    if (z == "+") {
    document.getElementById("demo3").innerHTML = a;
    }

    if (z == "-") {
    document.getElementById("demo3").innerHTML = x - y;
    }

    if (z == "*") {
    document.getElementById("demo3").innerHTML = x * y;
    }

    if (z == "/") {
    document.getElementById("demo3").innerHTML = x / y;
    }

}
...