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