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

如何在JavaScript中通过子总计求和生成总计金额?

实现子总计求和得到总计金额的解决方案

你的代码里第二个循环逻辑错误——它会重复5次把grand_total的值重置为0,完全没做累加操作。要实现子总计求和,只需调整calculate_Total函数的后半部分逻辑:

  1. 先初始化一个变量存储总计金额,初始值设为0
  2. 遍历所有子总计输入框,把每个值转为浮点数后累加到总计变量
  3. 最后把总计金额格式化后赋值给grand_total输入框

修改后的完整JS代码如下:

function calculate_Total() {
  // 计算每一行的子总计
  for (let i = 1; i <= 5; i++) {
    const idName = "price_" + i;
    const price = parseFloat(document.getElementById(idName).value) || 0;
    const idQty = "qty_" + i;
    const qty = parseFloat(document.getElementById(idQty).value) || 0;
    const total = price * qty;
    const idTotal = "total_" + i;
    document.getElementById(idTotal).value = total.toFixed(2);
  }

  // 计算总计金额
  let grandTotal = 0;
  for (let i = 1; i <= 5; i++) {
    const idTotal = "total_" + i;
    const subTotal = parseFloat(document.getElementById(idTotal).value) || 0;
    grandTotal += subTotal;
  }
  document.getElementById("grand_total").value = grandTotal.toFixed(2);
}

额外优化说明:

  • 给循环变量i加上let声明,避免污染全局变量
  • 给parseFloat添加|| 0兜底处理,防止输入为空或非数字时出现NaN错误

HTML部分无需修改,点击「Calculate Grand Total Price」按钮即可正常计算所有子总计的总和。

内容的提问来源于stack exchange,提问作者A.K. Enoch

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 16:30:58