Странный результат в простом математическом добавлении в 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%

Другие вопросы по тегам