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

简单材料成本计算器开发需求:实现阶梯计价功能

解决方案:添加条件判断的成本计算器修改

修改后的JavaScript代码

function calculateCost() {
  // 将输入值转为数字,避免字符串运算问题
  var width = parseFloat(document.getElementById("width").value);
  var depth = parseFloat(document.getElementById("depth").value);
  
  // 验证输入有效性,排除非数字和负数
  if (isNaN(width) || isNaN(depth) || width <= 0 || depth <= 0) {
    document.getElementById("result").innerHTML = "请输入有效的正数";
    return;
  }
  
  var area = width * depth;
  var totalCost;
  
  // 按面积区间应用不同单价
  if (area < 15) {
    totalCost = area * 2000;
  } else {
    // 面积≥15㎡时使用1750的单价(若需严格区分>15,可改为area > 15,等于15时用2000)
    totalCost = area * 1750;
  }
  
  // 格式化成本为两位小数,显示更规范
  document.getElementById("result").innerHTML = "总成本: £" + totalCost.toFixed(2);
}

修改说明

  • 输入类型转换:将输入的字符串转为浮点数,避免直接使用字符串相乘导致的错误(比如输入"2"+"3"会得到"23"而非6)。
  • 输入验证:添加了非数字、零和负数的判断,给用户明确的错误提示。
  • 条件判断逻辑:按照需求实现了面积小于15㎡用2000单价,其余情况用1750单价;如果需要严格区分仅大于15㎡才用1750(等于15时仍用2000),只需将else改为else if (area > 15),并补充else分支处理等于15的场景。
  • 成本格式化:用toFixed(2)保留两位小数,符合货币显示的规范。

原HTML代码(无需修改)

<form>
  Width in Metres: <input type="text" id="width"><br> Depth in Metres: <input type="text" id="depth"><br>
  <input type="button" value="Calculate" onclick="calculateCost()">
</form>

<div id="result"></div>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 20:55:51