JavaScript 格式化數字成金額格式


在看公司一個項目的JavaScript代碼時,發現一段JavaScript代碼,是把數字格式化成金額格式

比如:  

12345.678 格式化成  12,345.68

看完代碼后,google了一下,發現原來這是個幾乎標准的寫法,把代碼寫在了Number的prototype下

代碼如下

Number.prototype.numberFormat = function(c, d, t){
var n = this, 
    c = isNaN(c = Math.abs(c)) ? 2 : c, 
    d = d == undefined ? "." : d, 
    t = t == undefined ? "," : t, 
    s = n < 0 ? "-" : "", 
    i = String(parseInt(n = Math.abs(Number(n) || 0).toFixed(c))), 
    j = (j = i.length) > 3 ? j % 3 : 0;
   return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : "");
 };

這個函數有3個參數,分別說明如下

c  =>  小數點后面有幾位 (四舍五入到指定的位數)

d => 小數點 符號 (.) , 把它作為參數,是因為你可以自己制定你所需要的符號,比如你可以把 12345.678  格式化成  12,345#678   在這里,用# 符號 而不是 . 符號

t => 千分位的符號 (,) 也就是格式化成12,345.68中的逗號 (,), 你可以設置成任何你需要的符號, 比如 格式化成12@345.68   在這里,用@符號 而不是 , 符號

測試

123456.789.numberFormat(2,'.',',') = 123,456.79

123456.789.numberFormat(2,'*','#') = 123#456*79

 
        

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM