Pessoal, to tentando desenvolver uma calculadora ate que simples, mas to encontrando um bug no meu codigo e nao consigo resolver…
var valor1 = 0, valor2 = 0, operador;
function numPressed(num){
if(document.calc.visor.value == "0"){
if(num == "0"){
document.calc.visor.value = "0";
}
document.calc.visor.value = num;
}else{
document.calc.visor.value = document.calc.visor.value + num;
}
}
function opPressed(sinal){
operador = sinal;
valor1 = document.calc.visor.value;
document.calc.visor.value = "0";
}
function calcula(){
if(document.calc.visor.value == 0){
alert("Defina um valor para ser calculado!!");
}else{
result = null;
valor2 = document.calc.visor.value;
switch(operador){
case "+":
result = parseFloat(valor1) + parseFloat(valor2);
break;
case "-":
result = parseFloat(valor1) - parseFloat(valor2);
break;
case "*":
result = parseFloat(valor1) * parseFloat(valor2);
break;
case "/":
result = parseFloat(valor1) / parseFloat(valor2);
break;
}
document.calc.visor.value = result;
}
}
function limpa(){
document.calc.visor.value = "0";
valor1 = "0";
valor2 = "0";
result = null;
operador = null;
}
quando as operaçoes sao as de soma e multiplicação, funciona direitinho…
se eu esolher 1 + 1 e clicar no botao igual, o resultado é 2, depois 3, 4, 5… e assim em diante… da mesma forma multiplicando: 2 * 2 = 4, depois 8, 16, 32…
So que quando vou subtrair, escolho 30 - 1, e clico no igual, vai pra 29, depois 1, depois 29, depois 1, depois 29, depois 1 denovo e assim nao para…
Alguem me ajuda e resolver esse bug? abraços…