Попытка отформатировать число до двух знаков после запятой jQuery

Возможный дубликат:
JavaScript: форматирование числа с ровно два десятичных знака

Немного запутались в использовании переменных, и теперь кажется, что вычисления вообще не работают !?

 $("#discount").change(function(){
            var list = $("#list").val();
            var discount = $("#discount").val();
            var price = $("#price");
            var temp = discount * list;
            var temp1 = list - temp;
            var total = parseFloat($(this).temp1()).toFixed(2);

            price.val(total);       
 });

person benhowdle89    schedule 10.12.2010    source источник


Ответы (2)


$(this).temp1() выглядит особенно неуместно, я думаю, вы просто хотели использовать переменную temp1. Поскольку это уже число, вам также не нужно использовать для него parseFloat:

$("#discount").change(function() {
    var list = $("#list").val();
    var discount = $("#discount").val();
    var price = $("#price");
    var temp = discount * list;
    var temp1 = list - temp;
    var total = temp1.toFixed(2);

    price.val(total);
});
person Andy E    schedule 10.12.2010

Я бы посоветовал вам сначала преобразовать строки в числа перед вычислением. Например,

var list = parseFloat($("#list").val());
var discount = parseFloat($("#discount").val());
var price = $("#price");
var total = list - (discount * list);
price.val(total.toFixed(2));

Кроме того, если скидка выражена в процентах (например, 25), вам нужно разделить на 100, т.е. list - (discount/100 * list)

Кстати, обратитесь к этой теме SO, где люди предупреждали об использовании ToFixed: Как отформатировать плавать в javascript?

person VinayC    schedule 10.12.2010
comment
Должно быть total.toFixed (2), а не total.ToFixed (2) - person JasonH; 11.03.2016