Дело в том, что JavaScript может ошибаться, если числа дробные, так называемые
"числа с плавающей точкой". Подробнее вы можете разобраться в
статье.
Как решение, вы можете использовать библиотеку
Dinero или использовать метод
.toFixed(n). Библиотека создана для расчета неизменяемых денежных величин.