偶尔的无限循环
重要性:4
这个循环是无限的。它永远不会结束。为什么?
let i = 0;
while (i != 10) {
i += 0.2;
}
这是因为 i
永远不会等于 10
。
运行它以查看 i
的实际值
let i = 0;
while (i < 11) {
i += 0.2;
if (i > 9.8 && i < 10.2) alert( i );
}
它们都不完全等于 10
。
这种情况发生是因为添加像 0.2
这样的分数时会造成精度损失。
结论:在处理小数时,避免使用相等性检查。