I am trying to create a simple calculator and when I try to multiply i get NaN. Even if it's just a simple 2 * 3. Can somebody point out what I am doing wrong? There's is also no error in the console so I dont know why it's not multiplying properly. Any help is appreciated! Thank you in advance!
Edit**
I added how I got first_set for all the operators.
Here is my code:
plus.addEventListener("click", function(){
show.value += "+";
operator = "+";
first_set = show.value.slice(0,-1);
})
minus.addEventListener("click", function(){
show.value += "-";
operator = "-";
first_set = show.value.slice(0,-1);
})
multi.addEventListener("click", function(){
show.value += "*";
operator = "*";
first_set = show.value.slice(0,-1);
})
divide.addEventListener("click", function(){
show.value += "/";
operator = "/";
first_set = show.value.slice(0,-1);
})
exp.addEventListener("click", function(){
show.value += "^";
operator = "^";
first_set = show.value.slice(0,-1);
})
equals.addEventListener("click", function(){
let a, b, answer;
switch (operator){
case "+":
second_set = show.value.substring(show.value.indexOf("+"));
a = parseFloat(first_set);
b = parseFloat(second_set);
answer = a + b;
show.value = answer;
break;
case "-":
second_set = show.value.substring(show.value.indexOf("-"));
a = parseFloat(first_set);
b = parseFloat(second_set);
answer = a - b;
show.value = answer;
break;
case "*":
second_set = show.value.substring(show.value.indexOf("*"));
a = parseFloat(first_set);
b = parseFloat(second_set);
answer = a*b;
show.value = answer;
break;
case "/":
second_set = show.value.substring(show.value.indexOf("/"));
a = parseFloat(first_set);
b = parseFloat(second_set);
answer = a / b;
show.value = answer;
break;
case "^":
second_set = show.value.substring(show.value.indexOf("^"));
a = parseFloat(first_set);
b = parseFloat(second_set);
answer = Math.pow(a,b)
show.value = answer;
break;
default:
show.value ="Error!";
}
})```
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…