javascript简单循环计算

function calc() {

  var aa = document.getElementById("aa").value;

  var bb = document.getElementById("bb").value;

  var cc = document.getElementById("cc").value;

  var time = 1;

  var dd = document.getElementById("dd").value / 365;


  first = 1 + ((bb / 100) / cc);

  second = cc * time;

  result = aa * Math.pow(first, second);


  bb_earn = aa * Math.pow(first, second) - aa;

  final = Number(aa) + Number(bb_earn);


  var r = "";

  var lastTotal = aa;

  for (var i = 0; i < dd; i++) {


    var newTotal = Number(lastTotal) + Number(bb_earn);

    zz = +newTotal;

    lastTotal = newTotal;


    r += i + 1 + ") " + aa + "---" + zz + "---" + final + "<br/>";

    r += "";

  }


  document.getElementById("table").innerHTML += r;

}

<div> A - <input type="text" id="aa" value="12000" /></div>

<div> B - <input type="text" id="bb" value="20" /></div>

<div> C - <input type="text" id="cc" value="1" /></div>

<div> D - <input type="text" id="dd" value="1825" /></div>

<div> <input type="button" value="Get" onclick="calc();" /></div>

<br/><br/>

<div id="table"></div>

我试图循环默认值,默认值的 20% 和默认值的总和加上默认值的 20%。在下一行,默认值应该是前一个最终列的总和值。我尝试了上面的 javascript 计算来达到预期的结果。但是,我搞砸了..


输出结果为:


1) 12000---14400---14400

2) 12000---16800---14400

3) 12000---19200---14400

4) 12000---21600---14400

5) 12000---24000---14400

但是,输出应该是:


1) 12000---2400---14400

2) 14400---2880---17280

3) 17280---3456---20736

4) 20736---4147.20---24883.20

5) 24883.20---4976.60---29859.80


绝地无双
浏览 202回答 2
2回答

饮歌长啸

根据您编写的内容,很难弄清楚您要使用代码实现什么目标。如果您只想取之前的总数并每次增加 20%,则可以写得更简单。您没有解释time变量的作用以及#cc元素的作用。无论如何,这应该输出您期望的结果。function calc() {&nbsp; var aa = document.getElementById("aa").value;&nbsp; var bb = document.getElementById("bb").value;&nbsp; var cc = document.getElementById("cc").value;&nbsp; var dd = document.getElementById("dd").value / 365;&nbsp; var r = "";&nbsp; var lastTotal = Number(aa);&nbsp;&nbsp;&nbsp; for (var i = 0; i < dd; i++) {&nbsp;&nbsp;&nbsp; &nbsp; var ratio = ((bb / 100) / cc);&nbsp; &nbsp; var addition = lastTotal * ratio;&nbsp; &nbsp; var newTotal = lastTotal + addition;&nbsp; &nbsp; r += i + 1 + ") " + lastTotal + "---" + addition + "---" + newTotal + "<br/>";&nbsp; &nbsp; r += "";&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; lastTotal = newTotal;&nbsp; }&nbsp; document.getElementById("table").innerHTML += r;}<div> A - <input type="text" id="aa" value="12000" /></div><div> B - <input type="text" id="bb" value="20" /></div><div> C - <input type="text" id="cc" value="1" /></div><div> D - <input type="text" id="dd" value="1825" /></div><div> <input type="button" value="Get" onclick="calc();" /></div><br/><br/><div id="table"></div>

BIG阳

for next 循环没有任何问题但我想你的公式一切都错了。&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <!DOCTYPE HTML>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <html>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <head>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <title>Untitled</title>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </head>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <body>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <div> A - <input type="text" id="aa" value="12000" /></div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <div> B - <input type="text" id="bb" value="20" /></div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <div> C - <input type="text" id="cc" value="1" /></div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <div> D - <input type="text" id="dd" value="1825" /></div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <div> <input type="button" value="Get" onclick="calc();" /></div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br/><br/>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <div id="table"></div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <script>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; function calc(){&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var aa = document.getElementById("aa").value*1.0;//ensure that we use numbers and not strings&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var bb = document.getElementById("bb").value*1.0;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var cc = document.getElementById("cc").value*1.0;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var time = 1.0;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var dd = document.getElementById("dd").value*1 / 365;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; first = 1 + ((bb / 100) / cc);//first = 1.2 bb 20 ,cc 1&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; second = cc * time; // 1*1=1&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // i guess here you make a mistake or choose the wrong test datas&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var fact=Math.pow(first, second) // fact = 1.2^1&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; result = aa * fact; //result 14400 = 12000*1.2;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; bb_earn = aa * fact - aa; // bb_earn = 1.2 * 12000 -12000 = .2*12000 =2400&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; final = aa + bb_earn; //final =12000 + 2400 = again 14400&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;var zz=0;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var r = "";&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var lastTotal = aa;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for (var i = 0; i < dd; i++) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // as you could see thére is by this numbers NO chance to get something like -4147.20&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // there are NO AFTER DIGITS in this calculation&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //based on the fact result not possible&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var newTotal = Number(lastTotal) + Number(bb_earn);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; zz = newTotal;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; lastTotal = newTotal;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; r += i + 1 + ") " + aa + "---" + zz + "---" + final + "<br/>";&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; r += "";&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; document.getElementById("table").innerHTML += r;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </script>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </body>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </html>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript