Calculator in JavaScript

1

I'm trying to run the first part of the code so I can continue to do so, but instead of doing the operation when the "+" button is clicked, it goes straight to 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/>
    
asked by anonymous 08.09.2017 / 01:38

1 answer

1

Your problem seems to me in this 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 be able to 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>

Then I added the function of this response Check if string has only numbers to circumvent this problem.

    
08.09.2017 / 01:56