Откуда появляется непонятная дробная часть при вычислениях?
Математика в JavaScript
Вообще забудьте о таких способах вычисления состояния:itemsAmount = itemsAmount - itemCoast; // из общей суммы корзины вычитаем стоимость товара
Храните модель состояния и пересчитывайте сумму по ней при каждом ее изменении. Округляйте числа только после вычислений.
Это всего лишь одна из особенностей JS, с которой надо смириться.
https://habrahabr.ru/post/312880/