Javascript循环计算

Javascript loop calculation

本文关键字:计算 循环 Javascript      更新时间:2023-09-26

使用以下脚本

    
var lvl = 0;
var HappB = 5;
var DecoX = 5;
var DecoY = 5;
while (lvl < 5) {
  document.ofrm.UpgSD.value += Math.ceil((Math.exp((HappB + lvl) / ((DecoX * DecoY) * 1.8))) * 1 * 130000 * (Math.tanh((lvl + 1) / 20)) * (Math.tanh((lvl + 1) / 20)));
  lvl++;
}
<form name="ofrm">
  <input type="text" name="UpgSD" size="50" tabindex="1">
</form>

结果是

363147633676050952513778

预期输出为

363 + 1476 + 3367 + 6050 + 9525 + 13778 = 34559

我该如何解决这个问题?

这是一个更新的代码。1. 您的循环条件需要纠正。2. .value 是字符串。您可以设置为变量,然后附加它。

var lvl = 0;
var HappB = 5;
var DecoX = 5;
var DecoY = 5;
var number = 0;
while (lvl <= 5) {
  number += Math.ceil((Math.exp((HappB + lvl) / ((DecoX * DecoY) * 1.8))) * 1 * 130000 * (Math.tanh((lvl + 1) / 20)) * (Math.tanh((lvl + 1) / 20)));
  lvl++;
}
 document.ofrm.UpgSD.value = number;
<form name="ofrm">
  <input type="text" name="UpgSD" size="50" tabindex="1">
</form>

看起来

document.ofrm.UpgSD.value被转换为字符串(而不是数字)。

var lvl = 0;
var HappB = 5;
var DecoX = 5;
var DecoY = 5;
var initialValue = parseInt(document.ofrm.UpgSD.value);
while (lvl < 5) {
  initialValue += Math.ceil((Math.exp((HappB + lvl) / ((DecoX * DecoY) * 1.8))) * 1 * 130000 * (Math.tanh((lvl + 1) / 20)) * (Math.tanh((lvl + 1) / 20)));
  lvl++;
}
document.ofrm.UpgSD.value = initialValue;