JavaScript: почему возникает проблема при операциях с числами?

Сразу к сути: делаю вычитание 2.68-0.01 получаю ответ 2.6700000000000004

Что это? в какую сторону смотреть? из-за таких багов приходиться везде применять округлении, хотя с какой стати оно вобще нужно при вычитании одинаковых чисел с 2 знаками после точки.
  • Вопрос задан
  • 3535 просмотров
Пригласить эксперта
Ответы на вопрос 4
@gro
Операция с плавающей запятой.
Ответ написан
Комментировать
k12th
@k12th
console.log(`You're pulling my leg, right?`);
Комментировать
iDevArtem
@iDevArtem
О подобных проблемах JavaScript'а есть статейка на хабре

Как вариант, вашу проблему можно решить округлением:
var result = (2.68-0.01).toFixed(2)
console.log('result = ' + result); // result = 2.67
Ответ написан
Комментировать
@RokkerRuslan
Ошибки перевода из одной СС в другую. Все операции компьютер производит в двоичной СС, но не все числа можно правильно в ней представить. Обратите внимание, ошибка настолько мала, что её, во многих случаях, можно не учитывать.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы