2011-02-22 51 views
0
function addCommas(nStr) { 
    nStr += ''; 
    var x = nStr.split('.'); 
    var x1 = x[0]; 
    var x2 = x.length > 1 ? '.' + x[1] : ''; 
    var rgx = /(\d+)(\d{3})/; 
    while (rgx.test(x1)) { 
     x1 = x1.replace(rgx, '$1' + ',' + '$2'); 
    } 
    return x1 + x2; 
} 


P = addCommas(P); 
$("#monthly_result").html(P.toFixed(2)); 

我省去了P計算,所以請記住它正在輸出一個帶有小數的千位數。在將數字添加到數字時出現問題,同時將其限制爲只有2個小數位

我從堆棧中獲得了函數,它可以很好地將數字中的逗號加上數字。但是,當我試圖將值限制在2位小數時,它不輸出任何內容。

感謝

+0

如果您在添加逗號之前將數字轉換爲固定字符串,則您的代碼將起作用。 toFixed不適用於字符串。如果你這樣做,你不需要拆分小數點。 – kennebec 2011-02-22 23:20:20

回答

0

toFixed不適用於字符串(這你addCommas函數返回)。 簡單的解決方案是通過使用parseFloat將數字轉換爲浮點數,然後使用toFixed將小數點位數切換並轉換回字符串以繼續處理函數。

固定數量的小數位,東西線沿線的:

function addCommas(num) { 
    var num = parseFloat(num).toFixed(2)+'', 
     rgx = /(\d+)(\d{3}[\d,]*\.\d{2})/; 

    while (rgx.test(num)) { 
    num = num.replace(rgx, '$1' + ',' + '$2'); 
    } 
    return num; 
} 

在這種情況下,addCommas(61423.34512);將返回"61,423.35"。不過,我建議使用Robert發佈​​的number_format函數來提供一些額外的格式選項。

相關問題