Calculator in Javascript

Asked

Viewed 2,185 times

1

I’m trying to execute the first part of the code so I can continue to do it, but instead of doing the operation when you click on the "+" button, it goes straight to the else. What can I do?

   window.onload = function(){
        var btn = document.getElementById("botao_mais");
        btn.onclick = function (){
            var primeiro = document.getElementById("prim").value;
            var segundo = document.getElementById("segm").value;
            var pn = parseFloat(primeiro);
            var sn = parseFloat(segundo);
            conta_mais(parseInt(pn.value),
           parseInt(sn.value));
        }
    }

function conta_mais(pn, sn){
  var total_soma;
  if (pn > 0){
    total_soma = pn+sn;
  }
  else{
    alert("Digite um valor válido")
  }
  document.getElementById("resu").value = total_soma;
}
<h2>Calculadora</h2>
Primeiro número <input type="text" id="prim" value="" /> <br/>
Segundo número <input type="text" id="segm" value="" /> <br/>
Resultado <input type="text" id="resu" value="" /> <br/>
<input type="button" id="botao_mais" value="+" /> <br/>
<input type="button" id="botao-" value="-" /> <br/>
<input type="button" id="botao*" value="*" /> <br/>
<input type="button" id="botao/" value="/" /> <br/>

1 answer

1

Your problem seems to be on that line:

conta_mais(parseInt(pn.value),parseInt(sn.value));

<title>Calculadora</title>
<script>
    window.onload = function(){
        var btn = document.getElementById("botao_mais");
        btn.onclick = function (){
            var primeiro = document.getElementById("prim").value;
            var segundo = document.getElementById("segm").value;
            var pn = parseFloat(primeiro);
            var sn = parseFloat(segundo);
            conta_mais(pn,sn);
        }
    }

            function conta_mais(pn, sn){
                var total_soma;
                if (pn > 0){
                    total_soma = pn+sn;
                }
                else{
                    alert("Digite um valor válido")
                }
                document.getElementById("resu").value = total_soma;
            }

            </script>
</head>

<body>
    <h2>Calculadora</h2>
    Primeiro número <input type="text" id="prim" value="" /> <br/>
    Segundo número <input type="text" id="segm" value="" /> <br/>
   Resultado <input type="text" id="resu" value="" /> <br/>
    <input type="button" id="botao_mais" value="+" /> <br/>
     <input type="button" id="botao-" value="-" /> <br/>
     <input type="button" id="botao*" value="*" /> <br/>
     <input type="button" id="botao/" value="/" /> <br/>
</body>
</html>

But with this logic you will not get sum if the number is 0

 function isNumber(n) {
                return !isNaN(parseFloat(n)) && isFinite(n);
            }
 <title>Calculadora</title>
        <script>
            window.onload = function(){
                var btn = document.getElementById("botao_mais");
                btn.onclick = function (){
                    var primeiro = document.getElementById("prim").value;
                    var segundo = document.getElementById("segm").value;
                    var pn = parseFloat(primeiro);
                    var sn = parseFloat(segundo);
                    conta_mais(pn,sn);
                }
            }

                    function conta_mais(pn, sn){
                        var total_soma;
                        if (isNumber(pn) && isNumber(sn)){
                            total_soma = pn+sn;
                            document.getElementById("resu").value = total_soma;
                        }
                        else{
                            alert("Digite um valor válido")
                        }
                        
                    }

                    </script>
        </head>

        <body>
            <h2>Calculadora</h2>
            Primeiro número <input type="text" id="prim" value="" /> <br/>
            Segundo número <input type="text" id="segm" value="" /> <br/>
           Resultado <input type="text" id="resu" value="" /> <br/>
            <input type="button" id="botao_mais" value="+" /> <br/>
             <input type="button" id="botao-" value="-" /> <br/>
             <input type="button" id="botao*" value="*" /> <br/>
             <input type="button" id="botao/" value="/" /> <br/>
        </body>
        </html>

So I added the function of that answer Check if string has only numbers to get around this problem.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.