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