繁体   English   中英

求和循环的正确方法是什么

[英]what is the correct way to sum loop

var startX = 501;
var finalX = 320;
var multiply = .01;
var res = finalX - startX;
var extract = multiply * res;
var toEval;

if (res > 0) {
  toEval = "<=";
} else {
  toEval = ">=";
}
console.log("extract= " + extract + "");

while (eval(startX + toEval + finalX)) {

  startX += (-1.81);
  console.log(startX + " " + extract);

}

“问题”在while循环中,在第13次迭代中,在控制台中发生了这种情况:

  1. 482.9 -1.81
  2. proof2.html:39 481.09 -1.81
  3. proof2.html:39 479.28 -1.81
  4. proof2.html:39 477.46999999999997 -1.81
  5. proof2.html:39 475.65999999999997 -1.81

479.28-1.81 = 477.47

那么循环中到底发生了什么?

您可以使用函数进行比较,而不是使用eval

 var startX = 501, finalX = 320, multiply = .01, res = finalX - startX, extract = multiply * res, toEval; if (res > 0) { toEval = function (a, b) { return a <= b; }; } else { toEval = function (a, b) { return a >= b; }; } console.log("extract= " + extract + ""); while (toEval(startX, finalX)) { startX += (-1.81); console.log(startX + " " + extract); } 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM