2015-09-11 2 views
5

Мне нужно создать цикл, который может выполнять итерацию с десятичной, что-то вроде этого:Создать цикл с десятичными знаками в 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
  • ....

Спасибо за вашу помощь.

+1

Вы хотите увеличить десятые на '0.02'? Если это так, вы можете добавить '0.02' в' i' вместо '0.05'.Кроме того, вы можете удалить эти вызовы 'parseFloat', так как вы просто произвольно кодируете свои значения :) –

+1

' parseFloat' для строковых представлений чисел, вы должны их удалить. – TomSlick

ответ

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

Update # 1 (Добавлен рабочий пример)

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' должно быть' i <201'. Ваш выход останавливается на 0,2. –

2

согласно вашему ожидаемому результату вы могли бы просто сделать:

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

Но результат не как ожидалось

Когда я запускаю фрагмент кода, он печатает некоторые значения, как:

0,15000000000000002

Это происходит потому, что о том, как javascript обрабатывает плавающие точки. Представление не является точным. Решение состоит в использовании метода toFixed, как показано в этом 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

Да, я хотел увеличить на 0,02. Спасибо всем! –

Смежные вопросы