0

Есть счетчик обратного отсчета сотых числа:

$("#promo-lwo").html((numb_start * 1000 - 0.01 * 1000)/1000);

Работает через setInterval. Результат счетчика все равно приходит с неточностью вычисления. Прим: 4,5000000000000134. Умножение и деление на 1000 работает до 4.4, а дальше опять выдает неточности. Как с этим бороться?

Весь код:

    var timerId;

    var counter = function() {
      var numb_start = +$("#promo-lwo").text();
      $("#promo-lwo").html((numb_start * 1000 - 0.01 * 1000)/1000);
        if(numb_start === 1.01){clearInterval(timerId);}
    }


    $( ".gok" ).click(function() {
      if (+$("#promo-lwo").text() != 1) {
        timerId = setInterval(counter, 2500);

    } else {
        $("#promo-lwo").html("1");
      }
    });

    $( "#stop" ).click(function() {
      // останавливаем выполняемую анимацию
      if (timerId != undefined) clearInterval(timerId);
    });
Kromster
  • 13,809

1 Answers1

1

var counter = function() {
  var numb_start = $("#promo-lwo").text();
  $("#promo-lwo").html( ((+numb_start * 1000 - 0.01 * 1000) / 1000).toFixed(2) );
  if (numb_start === 1.01.toFixed(2)) {
    clearInterval(timerId);
  }
}

var timerId = setInterval(counter, 50);

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="promo-lwo">5</div>