Почему JS добавляет левые цифры?
Это не особенность JS, а особенность работы процессоров с операциями с плавающей запятой.

Убрать лишние цифры вам поможет метод toFixed()
const num = 1234.9870000000001;
const final = +num.toFixed(2);
console.log(final); // 1234.99
В интернетах даже сайт такой есть

https://0.30000000000000004.com