Бесконечный цикл по ошибке
важность: 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
.
Вывод: избегайте проверок на равенство при работе с десятичными дробями.