На этом шаге мы рассмотрим вычисление суммы скидки.
Для расчета скидки (строка Скидка) необходимо разделить указанное число на 100 и затем умножить полученное значение taxRate на промежуточный итог. Так как при расчетах сумму скидки будем округлять вверх, мы должны гарантировать, что для отображения и в последующих расчетах будет использоваться корректное значение. Функция Math.ceil() в языке JavaScript может округлять число до ближайшего большего целого числа, но так как мы имеем дело с рублями и копейками, нам следует быть немного хитрее:
var taxRate = parseFloat($('tr.tax td.price').text()) / 100; var tax = Math.ceil(totalCost * taxRate * 100) / 100; $('tr.tax td.cost').text(tax.toFixed(2)+' руб'); totalCost -= tax;
Сумма налога сначала умножается на 100, чтобы полученное значение оказалось выраженным в копейках, а не в рублях. После этого ее можно безопасно округлить с помощью функции Math.ceil() и потом разделить на 100, чтобы снова вернуться к исчислению в рублях. В заключение, как и прежде, вызывается метод .toFixed(), чтобы воспроизвести корректный результат, как показано на рисунке 1.
Рис.1. Теперь выполняется вычисление суммы скидки
Полный текст этого примера можно взять здесь.На следующем шаге мы рассмотрим вычисление стоимости доставки.