форматировать числа нужно в самом конце, когда все вычисления уже сделаны, перед выводом их на страницу.
что касается копеек, это тоже по сути форматирование при выводе.
const price = 123.45;
const ruble = Math.floor(price);
const penny = Math.round((price - ruble) * 100);
$('.ruble').html(ruble);
$('.penny').html(penny);
//<span class="ruble"></span> <span class="penny"></span>
то все его тонкости можно дня за 3 выучить
$sum.html(sum.toString().replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, '$1.'));
Так заценил но есть но, сразу цена почему-то не показывается, если нажать плюсик или минус, только тогда появляется, но по дефолту же кол-во всегда 1 стоит.
Ну и как быть с двумя ценами, надо чтобы цену акции брал, если она есть, а если нет то обычную цену брал и умножал, вот ломаю голову как такую проверку сделать.
Лучше взять оттуда же отдельную иконку в svg формате и вставить в страницу.