2015-09-11 15 views
5

Ich brauche eine Schleife zu erstellen, die mit dezimal laufen können, so etwas wie diese:mit Dezimalzahlen in JQuery erstellen Schleife

$("#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>

Aber das Ergebnis nicht wie erwartet, ich brauche so etwas wie dies:

  • 0,02
  • 0,04
  • 0,06
  • ....
  • 1,04
  • ....
  • 1,99
  • ....

Vielen Dank für Ihre Hilfe.

+1

Sie wollen von '0.02' die Dezimalstellen erhöhen? Wenn ja, können Sie "0,02" zu "i" anstelle von "0,05" hinzufügen.Außerdem können Sie diese 'parseFloat'-Aufrufe entfernen, da Sie nur Ihre Werte trotzdem hart codieren. –

+1

' parseFloat' ist für String-Repräsentationen von Zahlen, die Sie entfernen sollten. – TomSlick

Antwort

1

Unter der Annahme, dass Sie die Iteration von 0.02 erhöhen möchten, können Sie die folgende Schleife versuchen:

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>"); 
    } 
}); 

Update # 1 (Added Arbeitsbeispiel)

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

+2

'i <21' sollte' i <201' sein. Ihre Ausgabe endet bei 0,2. –

2

Wie pro Ihre erwartete Ergebnis, das Sie einfach tun könnte:

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

Sie können einfach int-Wert unter Verwendung von dezimal zu erstellen, indem Devide es um 100 als beloow Code ändern.

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

zum Beispiel bitte folgen https://jsfiddle.net/jffmzjuL/

3

Aber das Ergebnis als nicht

erwartet, wenn ich Ihren Code-Snippet ausführen, druckt es einige Werte wie:

0,15000000000000002

Dies liegt daran, wie JavaScript Fließkommas behandelt. Die Darstellung ist nicht exakt. Die Lösung ist die Verwendung der toFixed Methode, wie in dieser answer gezeigt.

$("#btn").click(function(){ 
 
    for(i = 0.00; i.toFixed(2) <= 2.00; i = i + 0.02){ 
 
     $("#paragraph").append(i.toFixed(2) + "<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

Ja wollte ich um 0,02 erhöhen. Danke an alle! –