2014-01-09 52 views
0

我對Javascript很新,所以請耐心等待。顯示數字到第二個最近的小數點

我有這個功能,總共加起來。我該如何使它顯示最接近的兩位小數而不是小數位?

function calcProdSubTotal() { 

    var prodSubTotal = 0; 

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

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

     prodSubTotal += parseInt(valString); 

    }); 

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

} 

謝謝!

編輯:要求:commaFormatted:

function CommaFormatted(amount) { 

    var delimiter = ","; 
    var i = parseInt(amount); 

    if(isNaN(i)) { return ''; } 

    i = Math.abs(i); 

    var minus = ''; 
    if (i < 0) { minus = '-'; } 

    var n = new String(i); 
    var a = []; 

    while(n.length > 3) 
    { 
     var nn = n.substr(n.length-3); 
    a.unshift(nn); 
    n = n.substr(0,n.length-3); 
} 

if (n.length > 0) { a.unshift(n); } 

n = a.join(delimiter); 

amount = "$" + minus + n; 

return amount; 

} 
+0

你能告訴我們你正在運行它的'CommaFormatted'函數嗎? – crush

+0

我用CommaFormatted編輯了我的問題 – Tara

+0

很高興給您看了我們。它也需要一些改變。 – crush

回答

0

您正在尋找toFixed()。它需要一個參數,digits。參數記錄如下:

小數點後面出現的位數;這可能是0到20之間的一個值,包括0和20,並且實現可以可選地支持更大範圍的值。如果省略此參數,則將其視爲0.

還要注意parseInt()解析整數,截斷可能具有的任何小數。如預期的那樣,parseFloat()將保留小數。

+0

你假設這個'CommaFormatted'函數不會與此相關。它可能不會,所以這可能會正常工作。 – crush

0

使用的功能toFixed(2)

的2是一個整數參數,說使用2個小數點,假設你的逗號格式化代碼不把它變成一個字符串。 (如果是這樣,固定小數之前,通過格式化運行)

$("#product-subtotal").val(CommaFormatted(parseFloat(prodSubTotal).toFixed(2))); 

記住parseFloat因爲val()可能是一個字符串!`

1

parseInt解析整數,所以你擺脫任何小數在那裏。使用parseFloat

E.g.

parseFloat('10.599').toFixed(2); //10.60 

您也可能希望將commaFormatted功能更改爲類似:

function commaFormatted(amount) { 
    if (!isFinite(amount) || typeof amount !== 'number') return ''; 

    return '$' + amount.toFixed(2).replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1,'); 
} 


commaFormatted(0); //$0.00 
commaFormatted(1.59); //$1.59 
commaFormatted(999999999.99); //$999,999,999.99 
+0

她的'CommaFormatted'函數也有一個'parseInt'。它看起來像小數將會搞砸「CommaFormatted」功能。 – crush

+0

如何更改逗號格式以不切斷任何小數? – Tara

+0

@Tara在'CommaFormatted'中改變'parseInt'會有幫助,但是你的加小數的算法會被拋棄。你應該使用[正則表達式來逗號格式化](http://stackoverflow.com/questions/2254185/regular-expression-for-formatting-numbers-in-javascript)。 – crush

0

我解決我的問題。我只是改變:

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

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

正如我在評論中說,這是沒有劇本我寫的。這是一個腳本克里斯科伊爾寫道,我只是想修改它。我想我不需要爲我的目的使用CommaFormatted?

謝謝大家的幫助!

相關問題