Javascript 在使用if语句暂停之前,数字是否向上计数?

Javascript 在使用if语句暂停之前,数字是否向上计数?,javascript,if-statement,Javascript,If Statement,当变量num达到整数时,我希望数字停止。暂停工作正常,但上升0.01后暂停。语句每帧运行一次(通过requestAnimationFrame) if(数学地板(num*100)/100==数学地板(num)&暂停

当变量
num
达到整数时,我希望数字停止。暂停工作正常,但上升0.01后暂停。语句每帧运行一次(通过
requestAnimationFrame

if(数学地板(num*100)/100==数学地板(num)&暂停<50){
暂停+=1;
}否则{
暂停=0;
num+=0.01;
}
完整的代码块位于GitHub上:

问题似乎是您的
Math.floor(num*100)/100==Math.floor(num)
条件评估为
true
,即使
num
有一个非常小的十进制值——例如1.000000007

通过直接将
num
与其舍入值进行比较,可以避免该问题:

if (num == Math.floor(num) && pause < 50) {
if(num==Math.floor(num)&暂停<50){

这样比较,除非
num
是一个整数,否则条件就不是
true

你确定额外的0.01不是上次执行的吗?我不认为是。但是如果是,你知道如何修复它吗?你需要一个更高的倍数来检查
num
是否为100,试试100000或1000000。这样就行了,但它只有在num达到20后才开始工作。即使我将它与1000进行了对比。我需要它的方式是,它从2开始,这是因为
requestAnimationFrame()
?“请求浏览器调用指定函数,在下次重新绘制之前更新动画。”当你添加一个小数点时,这个数字会比实际应该的值稍微高一点。因此,如果你有
num+=0.01
num
实际上会增加0.010…01什么是
num
开始?它什么时候会在循环之外更改?
if (num == Math.floor(num) && pause < 50) {