在Jquery中创建带小数的循环

时间:2015-09-11 16:20:46

标签: javascript jquery

我需要创建一个可以用十进制迭代的循环,如下所示:

$("#btn").click(function(){
    for(i =parseFloat(0.00); i <= 2.00;i=parseFloat(i+0.05)){
        $("#paragraph").append(i+"<br/>");
    }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input type="button" id="btn" value="Create decimals" />
<p id="paragraph"></p>

但结果并不像预期的那样,我需要这样的东西:

  • 0.02
  • 0.04
  • 0.06
  • ....
  • 1.04
  • ....
  • 1.99
  • ....
  • 2

感谢您的帮助。

4 个答案:

答案 0 :(得分:3)

  

但结果并不像预期的那样

当我运行您的代码段时,它会输出一些值,如:

  

0.15000000000000002

这是因为javascript如何处理浮点数。表示不准确。解决方案是使用toFixed方法,如此answer

所示

&#13;
&#13;
$("#btn").click(function(){
    for(i = 0.00; i.toFixed(2) <= 2.00; i = i + 0.02){
        $("#paragraph").append(i.toFixed(2) + "<br/>");
    }
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input type="button" id="btn" value="Create decimals" />
<p id="paragraph"></p>
&#13;
&#13;
&#13;

答案 1 :(得分:2)

根据您的预期结果,您可以这样做:

for (var i = 0.00; i <= 2.00; i += 0.02) {
$("#paragraph").append(i.toFixed(2)+"<br/>");
}

答案 2 :(得分:1)

你可以简单地使用int值来创建十进制,将其除以100。 将您的代码更改为beloow。

$("#btn").click(function(){
    for(i = 0; i <= 200; i += 2){
        $("#paragraph").append(eval(i / 100) + "<br/>");
    }
});

例如,请关注https://jsfiddle.net/jffmzjuL/

答案 3 :(得分:1)

假设您希望将迭代增加0.02,您可以尝试以下循环:

for (var i = 0; i < 21; i += 2) {
   console.log(i / 100);
}

jQuery("#btn").on("click", function() {
  for (var i = 0; i < 21; i += 2) {
    var result = i / 100;
    jQuery("#list").append("<li>" + result + "</li>");
  }
});

更新#1(已添加工作示例)

&#13;
&#13;
jQuery("#btn").on("click", function() {
  for (var i = 0; i < 21; i += 2) {
    var result = i / 100;
    jQuery("#list").append("<li>" + result + "</li>");
  }
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<html>
  <head>
    <title></title>
  </head>
  <body>
    <button id="btn">Generate Numbers</button>
    <ul id="list">
    </ul>
  </body>
</html>
&#13;
&#13;
&#13;