十进制计数器 JavaScript

Decimal counter JavaScript

我想在纯 JavaScript 中构建一个十进制计数器。我不知道为什么函数不想工作并从 0.0 计数到 5.1。我假设问题出在 Math.round - 也许它的定义方式有误。

HTML:

<span id="values">5.1</span>
<span id="counter"></span>

JS:

var numbers = document.getElementById('values').innerHTML;
var i = 0;                    

function countUp () {           
   setTimeout(function () {    
      document.getElementById('counter').innerHTML = i;
      this.i(Math.round(now*10)/10);
      i++;                     
      if (i <= numbers) { 
         countUp();           
      }                       
   }, 5000)
}

countUp(); 

您可以使用 Number#toFixed 删除不需要的浮点数。

function countUp () {
    var numbers = document.getElementById('values').innerHTML,
        i = 0,
        interval = setInterval(function () {
            i = +(i + 0.1).toFixed(1);
            document.getElementById('counter').innerHTML = i;
            if (i >= +numbers) { 
               clearInterval(interval );           
            }          
        }, 100);
}

countUp(); 
<span id="values">5.1</span>
<span id="counter"></span>