控制台在javascript中记录小数步数

e37o9pze  于 2021-09-23  发布在  Java
关注(0)|答案(1)|浏览(390)

我想赚十分之一 0.1 javascript中的动态编号标尺。我知道我可以很容易地做一个for循环和 console.log 以获得正确的迭代次数。我只需要把数学弄清楚,这就是我在如何编码上困惑的地方。
应该是这样记录的。。。

0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9
2

像0这样的整数就是0,1就是1,2就是2,依此类推。。。。
但我的问题是它会产生这样的结果。。。

0
.1
.2
.3
.4
.5
.6
.7
.8
.9
.10
.11
.12
.13
.14
.15
.16
.17
.18
.19
.20

我知道1.1大于1,2大于1.0,我知道我可以这样写表达式 (1.1 > 1) 要检测到这一点,但如何在上面第一个示例中所表达的日志示例中写出所有表达式?

var timeVal = parseFloat(parseFloat(time.value));

for (i = 0; i < parseFloat(timeVal * 10) + 1; i++) {
    if (i === 0) {
      console.log(+i)
    } else if (i <= 1) {
      console.log('.'+i)
    } else {
      console.log('.'+i)
    }
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

seconds: <input id="time" type="number" value="2" min="0" step=".1">
x9ybnkn6

x9ybnkn61#

一个简单的for循环来完成它。它也适用于十进制数。for循环中的“timeval+0.01”是为了避免浮点误差的问题。

var timeVal = parseFloat(document.getElementById("time").value);

for (var i = 0; i <= timeVal + 0.01; i += 0.1) {
  console.log(i.toFixed(1));
}
seconds: <input id="time" type="number" value="2.3" min="0" step=".1">

相关问题