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

JavaScript年度加薪累计总薪资计算结果错误求助

问题分析与代码修正

你的代码逻辑错误在于累加方式不对,导致少算了第一年的薪资涨幅差额,最终结果偏差3000。以下是具体分析和修正方案:

错误根源

当前年龄25岁、退休年龄28岁,实际需要计算3年薪资(25、26、27岁),但你的代码逻辑:

  • num5 = 28-25-1 = 2,循环2次得到第三年薪资156060
  • 执行answer = 150000*2 + 156060时,错误地将26岁的薪资按初始值150000累加,而非涨薪后的153000,直接少加了3000。

修正后的代码

正确逻辑是维护两个变量:一个存累计总薪资,一个存当年薪资,逐年累加并更新下一年薪资:

{ 
    var currentSalary = this.getField("Salary").value;
    var increaseRate = this.getField("Increase").value / 100;
    var currentAge = this.getField("Age").value;
    var retirementAge = this.getField("Retirement").value;
    
    var totalYears = retirementAge - currentAge;
    var totalIncome = 0;
    
    for(var i = 0; i < totalYears; i++) {
        totalIncome += currentSalary; // 先累加当年薪资
        currentSalary *= (1 + increaseRate); // 计算下一年的涨后薪资
    }
    
    this.getField("Income Value").value = totalIncome;
}

验证结果

代入参数测试:

  • 第1年:累加150000 → 累计=150000,当前薪资更新为153000
  • 第2年:累加153000 → 累计=303000,当前薪资更新为156060
  • 第3年:累加156060 → 累计=459060,与正确结果完全一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 02:10:35