当前位置: 首页 > 知识库问答 >
问题:

使用setInterval函数[duplicate]时,十进制数增长失控

丌官招
2023-03-14

我想使用setInterval将一个数字增加0.1/s,我还想将此函数多次应用于该数字(单击一次,0.1/s,单击两次,0.2/s等)。然而,当我执行这个函数时,这个数字会增加到3.00000001而不是3,或者7.999999999而不是8。我该怎么解决这个问题?

let btn = document.querySelector(".button");
let num = document.getElementById("number");
let increment = 0;

function toAdd() {
  setInterval(() => {
    num.innerHTML = parseFloat(num.innerHTML) + increment;
  }, 1000)
}

btn.addEventListener("click", toAdd, increment += 0.1);
<span id="number">0</span>
<button class="button">Click to Add</button>

共有1个答案

池阳伯
2023-03-14

每次单击时,您都设置了一个新的setInterval.也可以按照建议使用toFig(),但您需要使用if语句来防止多个setInterval

let btn = document.querySelector(".button");
let num = document.getElementById("number");
let increment = 0;
function toAdd() {
increment+=.1

if (increment == .1){
  setInterval(() => {
    num.innerHTML =parseFloat(parseInt((parseFloat(num.innerHTML)+.05+increment)*10)/10);
    
    
  }, 1000)} else num.innerHTML =parseFloat(parseInt((parseFloat(num.innerHTML)+.05+increment)*10)/10);
}

btn.addEventListener("click", toAdd);
html lang-html prettyprint-override"><span id="number">0</span>
<button class="button">
Click to Add
</button>
 类似资料:
  • 主要内容:二进制数、八进制数和十六进制数的表示,二进制数、八进制数和十六进制数的输出C语言中的整数除了可以使用十进制,还可以使用二进制、八进制和十六进制。 二进制数、八进制数和十六进制数的表示 一个数字默认就是十进制的,表示一个十进制数字不需要任何特殊的格式。但是,表示一个二进制、八进制或者十六进制数字就不一样了,为了和十进制数字区分开来,必须采用某种特殊的写法,具体来说,就是在数字前面加上特定的字符,也就是加前缀。 1) 二进制 二进制由 0 和 1 两个数字组成,使用时必须以

  • 我有一个二进制数,表示为11.1111111(与小数点类似)。点前有2位,点后有1024位。这是一个将e计算到高精度的练习,但现在我被困在如何将其转换为十进制的问题上。万一你们想知道号码,就在这里: 如何将其转换为2.718。。。。(小数点后应该有309位左右)我不能简单地将每一位乘以2^x,因为一段时间后,数字2^x将=0,即使使用双精度浮点。我使用的是Visual Basic,所以我不确定是否

  • 本文向大家介绍PHP实现十进制、二进制、八进制和十六进制转换相关函数用法分析,包括了PHP实现十进制、二进制、八进制和十六进制转换相关函数用法分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP实现十进制、二进制、八进制和十六进制转换相关函数用法。分享给大家供大家参考,具体如下: 1.二进制: 1.1.二进制转十进制: 函数:bindec(string $binary_string)

  • 本文向大家介绍使用逻辑控制器的十进制计数器,包括了使用逻辑控制器的十进制计数器的使用技巧和注意事项,需要的朋友参考一下 我们用8085编写一个用汇编语言编写的程序,仅用于实现十进制计数器的实现,该计数器被逻辑控制器接口使用。起始计数的输入必须是通过完整界面的输入,此外,我们在界面上显示计数。 让我们考虑一个示例程序– 紧随其后的程序应始终包含一个无限循环,直到用户的输入仅将有效二进制数字十进制值(

  • 任何帮助都会很好。

  • 我想设置两个BigDecimal数字和的比例。如本例所示: 当我运行时,我有一个例外: 为什么四舍五入是必要的?如果我不想让周围,什么是解决方案? 谢谢