You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JavaScript计算器代码中使用parseInt修复加法拼接字符串问题

问题原因

你遇到的加法拼接问题本质是类型不匹配导致的:

  • 从input元素的value属性拿到的内容默认是字符串类型
  • JS中-/*//运算符遇到字符串会自动尝试转成数字再计算,所以这三个运算没有问题
  • +运算符优先级偏向字符串拼接,只要左右任意一个值是字符串,就会执行拼接逻辑,不会做数值加法
解决方法

只需要在拿到输入值的时候,用parseInt()方法转成整数类型即可,如果需要支持小数运算,可以换成parseFloat()。

修改后的JS代码
function izracunaj() {
  // 拿到输入值后直接转成整数
  const st1 = parseInt(document.getElementById("prvoStevilo").value);
  const st2 = parseInt(document.getElementById("drugoStevilo").value);
  const operacija = document.getElementById("operacija").value;

  let rezultat;

  switch (operacija) {
    case '+':
      rezultat = st1 + st2;
      break;
    case '-':
      rezultat = st1 - st2;
      break;
    case '*':
      rezultat = st1 * st2;
      break;
    case '/':
      // 额外补充除以0的判断,避免输出异常值
      if (st2 === 0) {
        rezultat = '不能除以0';
      } else {
        rezultat = st1 / st2;
      }
      break;
    // 额外补充默认分支,处理输入的运算符不合法的情况
    default:
      rezultat = '请输入合法运算符(+ - * /)';
  }
  document.getElementById("rezultat").value = rezultat;
}
额外优化提示

现有HTML代码存在一个标签不匹配的小问题:标题用<h1>开头,却用</h2>结尾,建议改成<h1>Kalkulator</h1>避免渲染异常。

内容的提问来源于stack exchange,提问作者user17522931

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 18:15:08