javascript - 控制台记录十进制步数以在 javascript 中编号
问题描述
我正在尝试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">
解决方案
一个简单的 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">
推荐阅读
- c# - 将 StringSegment 附加到 StringBuilder
- python - 如何将 pandas 数据框转换为具有列名的 numpy 数组
- django - 以条带形式访问 webbook 中的优惠券信息
- json - 通过 Cloud Formation 控制数据库安全组端口访问
- json - Rocket 无法解析 JSON 正文
- python - Pytss:将参数传递给 fapi_Sign() 方法 - 无效的参数类型(类型为 uint8_t const * 的 Fapi_Sign 参数 4)
- c++ - 在两个字符串 C++ 中找到最长的子字符串
- java - 尝试在Java中将变量从方法调用到main
- python - 如何获得 T5 变压器模型的可重现结果
- c# - 如何从用户输入写入 C# 中的不同文件