Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在计算器中添加字符串而不是数字_Javascript_Numbers - Fatal编程技术网

Javascript 在计算器中添加字符串而不是数字

Javascript 在计算器中添加字符串而不是数字,javascript,numbers,Javascript,Numbers,我对JavaScript相当陌生,而且这段代码不是很高级。我正在构建一个简单的计算器,有两个输入和一个下拉菜单来选择一个操作。每当我尝试添加两个输入时,它都会添加字符串。但是,所有其他操作都是有效的。我认为问题出现在第7行:var total=n1+n2;这可能是在添加字符串而不是数字,有什么解决方案吗 function calculate() { const n1 = document.getElementById("Num1"

我对JavaScript相当陌生,而且这段代码不是很高级。我正在构建一个简单的计算器,有两个输入和一个下拉菜单来选择一个操作。每当我尝试添加两个输入时,它都会添加字符串。但是,所有其他操作都是有效的。我认为问题出现在第7行:var total=n1+n2;这可能是在添加字符串而不是数字,有什么解决方案吗

        function calculate() {
                const n1 = document.getElementById("Num1").value;
                const n2 = document.getElementById("Num2").value;
                const e = document.getElementById("op");
                const oper = e.options[e.selectedIndex].text;
                   if (oper.normalize() === "+") {
                var total = n1 + n2;
            } else if (oper.normalize() === "-"){
                var total = n1 - n2;
            } else if (oper.normalize() === "*"){
                var total = n1 * n2;
            } else if (oper.normalize() === "/"){
                var total = n1 / n2;
            }
            document.getElementById("demo").innerHTML = total;
        }
    </script>
        <div style="background-color:rgb(225,225,225);border:1px solid black;margin-left:800px;margin-right:800px;"><br>
            <input id="Num1" placeholder="Input 1"><br><br>
                    <select id="op">
                        <option>+</option>
                        <option>-</option>
                        <option>*</option>
                        <option>/</option>
                    </select><br><br>
            <input id="Num2" placeholder="Input 2"><br><br>
            <button onclick="calculate()">Calculate</button><br><br>
        </div>
    <p style="color:red" id="demo"></p>
函数计算(){
const n1=document.getElementById(“Num1”).value;
const n2=document.getElementById(“Num2”).value;
const e=document.getElementById(“op”);
const oper=e.options[e.selectedIndex].text;
如果(操作规范化()=“+”){
var总=n1+n2;
}else if(操作规范化()=“-”){
var总=n1-n2;
}else if(操作规范化()=“*”){
var总=n1*n2;
}else if(操作规范化()=“/”){
var总=n1/n2;
}
document.getElementById(“demo”).innerHTML=total;
}



+ - * /



计算


我使用了相同的代码,工作正常,但如果您遇到问题,请尝试使用parseInt(n1)将字符串转换为数字

Im使用Sublime text 3和google chrome,这可能就是它对您有效的原因。