десятичные разряды в JS - PullRequest
       23

десятичные разряды в JS

0 голосов
/ 16 ноября 2009

У меня есть два ввода формы, которые отображают вычисленную промежуточную сумму счета и итоговую сумму формы.

Проблема в том, что я не отображаю 2 десятичных знака.

Итого, функция

    function calcProdSubTotal() {

    var prodSubTotal = 0;

    $(".row-total-input").each(function(){

        var valString = $(this).val() || 0;

        prodSubTotal += parseInt(valString);

    });

    $("#product-subtotal").val(prodSubTotal);

};

Общая функция

function calcOrderTotal() {

    var orderTotal = 0;

    var productSubtotal = $("#product-subtotal").val() || 0;
    var productTax = $("#product-tax").val() || 0;

    var orderTotal = parseInt(productSubtotal) + parseInt(productTax);
    var orderTotalNice = "$" + orderTotal;

    $("#order-total").val(orderTotalNice);

};

Как мне отобразить два десятичных знака?

Ответы [ 3 ]

1 голос
/ 16 ноября 2009

Если вы работаете с действительными числами, было бы лучше использовать parseFloat вместо parseInt. Для форматирования числа вы можете использовать функцию toFixed:

$("#product-subtotal").val(prodSubTotal.toFixed(2));
1 голос
/ 16 ноября 2009

изменение $("#product-subtotal").val(prodSubTotal);

до $("#product-subtotal").val(addDecimals(prodSubTotal));

и изменить $("#product-subtotal").val(prodSubTotal);

до $("#product-subtotal").val(addDecimals(prodSubTotal));

function addDecimals(a){
     a += "";
     var i=a.indexOf('.');
    if(i<0){
        return a + ".00";
    }
    var j = a.substring(i);
    console.log(j);
    if(j.length<3){
        for(var k=j.length;k<3;k++)
            a+='0';
        return a;
    }   
    if(j.length>3){
        return a.substring(0, i)+j.substring(0,3);
    }
}
1 голос
/ 16 ноября 2009

Вы можете посмотреть здесь: http://www.mredkj.com/javascript/nfbasic2.html

В основном вы можете использовать toFixed(2), но тогда вы получите некоторое округление.

Или, если округление плохо, вы можете сделать parseInt(productTax * 100) / 100.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...