2015-09-11 9 views
5

ho bisogno di creare un ciclo in grado di scorrere con decimali, qualcosa di simile:Creare ciclo con decimali in 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>

Ma il risultato non è come previsto, ho bisogno di qualcosa di simile questo:

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

Grazie per il vostro aiuto.

+1

Si vuole incrementare i decimali da '0.02'? Se è così, puoi aggiungere '0.02' a' i' invece di '0.05'.Inoltre, puoi rimuovere quelle chiamate 'parseFloat' dato che stai semplicemente codificando i tuoi valori in ogni caso :) –

+1

' parseFloat' è per le rappresentazioni di stringa di numeri, dovresti rimuoverli. – TomSlick

risposta

1

Supponendo che si vuole incrementare l'iterazione da 0.02, si può provare il seguente ciclo:

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 (Aggiunto esempio di lavoro)

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' dovrebbe essere' i <201'. L'uscita si ferma a 0,2. –

2

Secondo il vostro previsto risultato si può semplicemente fare:

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

Si può semplicemente utilizzando il valore int per creare decimale devide per 100. modificare il codice come beloow.

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

ad esempio seguire https://jsfiddle.net/jffmzjuL/

3

Ma il risultato non è come previsto

Quando eseguo lo snippet di codice, esso stampa alcuni valori come:

0,15000000000000002

Questo perché di come javascript gestisce i punti mobili. La rappresentazione non è esatta. La soluzione è utilizzare il metodo toFixed, come mostrato in questo answer.

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

Sì, volevo incrementare di 0.02. Grazie a tutti! –