Странный результат в простом математическом добавлении в JavaScript
У меня есть следующая простая математическая операция.
var a = 1.12345678 + 1;
console.log(a);
что приводит к
2.1234567799999997
Зачем?
Я ожидаю, что результат будет
2.12345678
2 ответа
Простое решение:
Math.round(( OPERATION ) * 1e12) / 1e12
Поддерживает все браузеры. toFixed() вызывает странные вещи в IE.
Я бы просто рекомендовал использовать +a.toFixed(8)
JavaScript использует точность с плавающей точкой, которая никогда не бывает точной на 100%