如何解决无限计数器,以两位小数递增
试图创建一个从10.41开始并每秒增加10.41的无限计数器。看过各种教程,但我找不到一个可以每秒增加十进制数单位(10.41)的教程。这是我正在使用的代码:
setTimeout(start,0);
var i = 100;
var num = document.getElementById('number');
function start() {
setInterval(increase,100);
}
function increase() {
if (i < 100000) {
i++;
num.innerText = i;
}
}
解决方法
如果我的理解正确,那么您只需使用i++
即可代替i += 10.41
。我还已将初始i
的值更改为零,因为您希望它从10.41
开始并设置为1000
而不是100
的计时器:
setTimeout(start,0);
var i = 0;
var num = document.getElementById('number');
function start() {
increase();
setInterval(increase,1000);
}
function increase() {
if (i < 100000) {
i += 10.41;
num.innerText = i.toFixed(2);
}
}
<span id="number"></span>
此外,我使用i.toFixed(2);
将其截短到两位小数。
我想要:
function Incro(increment,interval,execFunc){
let iv;
this.increment = increment; this.interval = interval; this.execFunc = execFunc; this.sum = 0;
this.start = ()=>{
iv = setInterval(()=>{
this.sum += this.increment; this.execFunc();
},this.interval);
return this;
}
this.stop = ()=>{
clearInterval(iv); iv = undefined;
}
}
const incro = new Incro(10.41,1000,function(){
console.clear(); console.log(this.sum.toFixed(2));
if(this.sum > 100)this.stop();
});
console.log('0.00');
incro.start();
setTimeout(()=>{
incro.stop();
setTimeout(()=>{
incro.start();
},2000);
},5150);
您会看到JavaScript时间不正确。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。