На этом шаге мы рассмотрим способ округления значения дробной части.
Несмотря на то, что мы добавили символы ' руб' в конец каждого суммарного значения, JavaScript даже не подозревает, что имеет дело с денежными величинами. С точки зрения компьютера, это всего лишь числа, которые он отображает соответствующим образом. Следовательно, если общая сумма оканчивается нулем после десятичной точки, этот ноль будет отброшен.
К счастью, эта проблема решается достаточно просто. Класс Number в JavaScript обладает несколькими методами, позволяющими решать проблемы подобного рода, и в данном случае мы используем метод .toFixed(). Этот метод принимает в виде аргумента число знаков после десятичной точки и возвращает строку, представляющую число с плавающей точкой, округленное до указанного числа знаков в дробной части:
$('td.quantity input').change(function() { var totalQuantity = 0; $('#cart tbody tr').each(function() { var price = parseFloat($('td.price', this) .text().replace(' руб', '')); price = isNaN(price) ? 0 : price; var quantity = parseInt($('td.quantity input', this).val(), 10); quantity = isNaN(quantity) ? 0 : quantity; var cost = quantity * price; $('td.cost', this).text(cost.toFixed(2)+' руб'); totalQuantity += quantity; }); $('tr.shipping td.quantity').text(String(totalQuantity)); });
Теперь наши суммарные значения выглядят как нормальные денежные значения (рисунок 1).
Рис.1. Теперь суммарные значения выглядят как денежные величины
Полный текст этого примера можно взять здесь.
На следующем шаге мы рассмотрим прочие вычисления.