javascript - JS Math setinterval 一个范围内的随机数
问题描述
我有一个默认数字,在页面加载后,每一秒后,我都必须在此范围内添加一个数字:(0.02 - 0.006)。
这是代码:
var amount = 44522.1234;
setTimeout(start, 1000);
var i = Math.floor(Math.random() * (0.02 - 0.006) + 0.006);
console.log("initial" + i);
var num = document.getElementById('total');
function start() {
setInterval(increase, 1000);
}
function increase() {
if (i < amount) {
i++;
console.log(i);
num.innerText = amount + i;
}
}
<div id="total"></div>
上面的代码只增加1
每秒的数量,而不是增加指定范围内的数字。
解决方案
Math.floor
将截断数字,因此它永远不会在您想要的范围内。此外,您应该每秒生成一个新的随机数,而不是增加最初生成的数字。
var amount = 44522.1234;
setTimeout(start, 1000);
var num = document.getElementById('total');
function start() {
setInterval(increase, 1000);
}
function increase() {
var i = Math.random() * (0.02 - 0.006) + 0.006;
console.log("adding",i);
amount += i;
num.textContent = amount;
}
<div id="total"></div>
推荐阅读
- javascript - Ag-Grid-React 将行格式扩展到字段之外
- javascript - 使用 CefSharp 加载网页时如何检测是否存在 Web 元素
- apache-spark - Spark 数据框无法收集和聚合 2000 列
- keras - 为什么 Pytorch 和 Keras 实现会给出截然不同的结果?
- angular - 如何使用 Angular Routing 检查当前路由参数是否已被修改
- python - 在每次迭代中只更新熊猫数据框的第一行
- angular - BackButton clear Title of Actionbar in Native Script 6
- python - 如何将多个 SVG 以特定尺寸放在一个页面上?
- python - 使用 pip 升级最初通过 apt 安装的软件包
- r - 如何记录依赖外部包中的类的 S4 方法?