簡體   English   中英

計算器中的減法和加法結果不正確

[英]Subtraction and addition results in calculator are incorrect

我正在使用HTMLJavascript創建一個 for 循環計算器,我嘗試了我所知道的一切。 問題是減法的結果不正確,與加法相同。

這是功能

<script>
    var num1 = 0, num2 = 0, resultt = 1, resultt = 1;
    var init = 0, inc = 0, imput = 0;
    function gen() {
        imput = parseInt(document.getElementById("txt1").value);
        for(init = 1; init <= imput; init++) {
            document.write("<input type='text' value='" + init + "' id='" + init + "'><br>");
        }

        document.write("<input type='button' value='compute'onclick='computee();'><div style='border: 1px solid black;' id='displayy'></div></br>");
        document.write("<input type='button' value='subtract'onclick='subtractt();'><div style='border: 1px solid black;' id='displayy'></div></br>");
        document.write("<input type='button' value='division'onclick='divisionn();'><div style='border: 1px solid black;' id='displayy'></div></br>");
        document.write("<input type='button' value='multiplication'onclick='multiplicationn();'><div style='border: 1px solid black;' id='displayy'></div></br>");      
    }

這是另一半

    function computee() {
        var imputt = "";
        for(inc = 1; inc <= init - 1; inc++) {
            resultt = resultt + parseInt(document.getElementById(inc).value);
        }

        document.getElementById("displayy").innerHTML = resultt;
    }

    function subtractt() {
        var imputt = "";
        for(inc = 1; inc <= init - 1; inc++) {
            resultt = resultt - parseInt(document.getElementById(inc).value);
        }

        document.getElementById("displayy").innerHTML = resultt;
    }

    function divisionn() {
        var imputt = "";
        for(inc = 1; inc <= init - 1; inc++) {
            resultt = resultt % parseInt(document.getElementById(inc).value);
        }
        document.getElementById("displayy").innerHTML = resultt;
    }

    function multiplicationn() {
        var imputt = "";
        for(inc = 1; inc <= init - 1; inc++) {
            resultt = resultt * parseInt(document.getElementById(inc).value);
        }
        document.getElementById("displayy").innerHTML = resultt;
    }

</script>
</head>
    <body>
        <input type="number" id="txt1" placeholder="enter number of textboxes" onkeyup="solve();">
        <input type="button" value="generate" onclick="gen()">
    </body>
</html>

1- 您的 div 輸出具有相同的 ID,並且 2- 乘法和除法中的ParseInt必須是parseFloat

 var num1 = 0, num2 = 0, resultt = 1, resultt = 1; var init = 0, inc = 0, imput = 0; function gen() { imput = parseInt(document.getElementById("txt1").value); for(init = 1; init <= imput; init++) { document.write("<input type='text' value='" + init + "' id='" + init + "'><br>"); } document.write("<input type='button' value='compute'onclick='computee();'><div style='border: 1px solid black;' id='displayy1'></div></br>"); document.write("<input type='button' value='subtract'onclick='subtractt();'><div style='border: 1px solid black;' id='displayy2'></div></br>"); document.write("<input type='button' value='division'onclick='divisionn();'><div style='border: 1px solid black;' id='displayy3'></div></br>"); document.write("<input type='button' value='multiplication'onclick='multiplicationn();'><div style='border: 1px solid black;' id='displayy4'></div></br>"); } function computee() { var imputt = ""; for(inc = 1; inc <= init - 1; inc++) { resultt = resultt + parseInt(document.getElementById(inc).value); } document.getElementById("displayy1").innerHTML = resultt; } function subtractt() { var imputt = ""; for(inc = 1; inc <= init - 1; inc++) { resultt = resultt - parseInt(document.getElementById(inc).value); } document.getElementById("displayy2").innerHTML = resultt; } function divisionn() { var imputt = ""; for(inc = 1; inc <= init - 1; inc++) { resultt = resultt / parseFloat(document.getElementById(inc).value); } document.getElementById("displayy3").innerHTML = resultt; } function multiplicationn() { var imputt = ""; for(inc = 1; inc <= init - 1; inc++) { resultt = resultt * parseFloat(document.getElementById(inc).value); } document.getElementById("displayy4").innerHTML = resultt; }
 <input type="number" id="txt1" placeholder="enter number of textboxes"> <input type="button" value="generate" onclick="gen()">

我至少認為我已經做了你想要的..

請繼續看一看:

 const input = document.getElementById('input'); input.addEventListener('input', e => calculateStuff(e.target.value)); function calculateStuff(numb) { let addition = 1; let subtraction = 1; let multiplication = 1; let division = 1; for(let i = 2; i <= parseInt(numb); i++) { addition += i; subtraction -= i; multiplication *= i; division /= i; } console.log('// *********************** //'); console.log('Addition:', addition); console.log('Subtraction:', subtraction); console.log('Multiplicaton:', multiplication); console.log('Division:', division); console.log('// *********************** //'); }
 Input number: <input type="number" id="input" />

我為每個操作預先分配了 1,否則我會將零除以 1 等等......這就是循環從 2 開始的原因。否則代碼是不言自明的,至少在我看來,所以如果你需要一些解釋讓我知道:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM