Проверяет понимание особенностей представления чисел с плавающей точкой в JavaScript и причин неточных арифметических операций.
В JavaScript все числа хранятся в формате с плавающей точкой двойной точности (IEEE 754). Этот формат использует двоичное представление, в котором большинство десятичных дробей не могут быть выражены точно. Например, 0.1 в двоичной системе — это бесконечная периодическая дробь, поэтому компьютер хранит лишь приближённое значение.
При сложении двух приближённых значений ошибка накапливается, и результат оказывается чуть больше ожидаемого: 0.1 + 0.2 даёт 0.30000000000000004. Сравнение с 0.3 возвращает false, потому что это разные числа.
console.log(0.1 + 0.2); // 0.30000000000000004
console.log(0.1 + 0.2 === 0.3); // falseДля точных вычислений с десятичными дробями используйте целые числа (например, считайте в копейках) или библиотеки вроде decimal.js. При сравнении чисел с плавающей точкой применяйте допуск (эпсилон):
const eps = 1e-10;
if (Math.abs((0.1 + 0.2) - 0.3) < eps) {
console.log('равны');
}Вывод: понимание этого поведения важно для финансовых расчётов, научных вычислений и любого кода, где требуется высокая точность. Используйте целочисленную арифметику или специализированные библиотеки, когда точность критична.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию