javascript - 为什么我的“for”循环按一半计算并在目标数以下完成 2?
问题描述
我一直在练习一些基本概念,这让我感到困惑。我在提示符中输入了 30 岁,并希望控制台列出 22、21、20、19 和 18 岁,但实际上它会下降到 16 岁,并且也按 0.5 计算。知道为什么吗?
var age = parseInt(prompt("How old are you?"), 10);
function calcDateAge(age) {
var dateAge = (age / 2) + 7;
return dateAge;
}
for (i = age; i > 18; i--) {
console.log(calcDateAge(i));
}
解决方案
你得到小数是因为你的划分不准确。要解决此问题,请执行以下操作:
var dateAge = parseInt(age / 2) + 7;
这会将您的浮点数截断为整数。
现在你得到 16 的原因不是因为你的 i 变量将变为 16,而是你的 calcDateAge() 函数返回 16。
例如:当 i = 18 calcDateAge(i) = 16
推荐阅读
- javascript - 如何在每个栏的顶部显示值 | 高图 | Vue-chartkick | 立方体
- javascript - 如何检索存储在 MongoDB 中的 CSV 文件?
- excel - VBA代码在动态工作表中的合并单元格范围周围放置边框
- python - 如何修复“ID 为“某些 id”的项目不存在”Django FileField 模型错误
- android - 如何在设置查询室数据库中添加查询以使用一些初始值填充数据库
- oracle-apex - 升级到 APEX 19.1 后,setSelection 不再起作用
- java - 使用 Java (Windows) 将音频流式传输到 PulseAudio 服务器
- c# - 当父级变为空时,uwp 绑定到子属性不会更新
- visual-studio-code - 有没有办法在 BPMN Kogito 工具 VSCode 扩展上显示任务输入/输出?
- javascript - 同一用户在混合类型数组中对图像上传进行分组