javascript - 在计算器中添加字符串而不是数字
问题描述
我对 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>
解决方案
我使用了相同的代码,它工作正常,但如果您遇到问题,请尝试使用 parseInt(n1) 将字符串转换为数字
推荐阅读
- google-apps-script - 在 Google Apps 脚本中使用机密模式发送电子邮件
- python - 在重新运行代码时,在 python 中存储类的实例时,最佳实践是什么?
- javascript - 使用 isset() 进行用户验证
- comsol - 如何获取 comsol 许可证文件和用于下载 comsol multiphysics 的试用密码
- typescript - Typescript Conditional Types 结合映射类型文档示例说明
- sql - 需要编写一个存储过程来将字符串整理成单个字符串以匹配 ID 并将结果写入新表
- mongodb - 数组中包含重复对象的所有 Mongo 文档
- typescript - 如何通过另一个类扩展类?
- php - Symfony 4 - Forms CollectionType 获取特定数据
- javascript - 如何用cheerio从网站上抓取数据