TransWikia.com

Javascript returning NaN when multiplying

Stack Overflow Asked by lm_margaux on January 21, 2021

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!";
    }
})```

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP