zoukankan      html  css  js  c++  java
  • 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

    
    
    
  • 相关阅读:
    第四周学习进度总结
    SOA面向服务的架构
    MVC架构模式
    大型网站技术架构阅读笔记01
    Python爬虫出错
    修改安卓的gradle地址后出现cannot resolve symbol ......错误
    一线架构师阅读笔记03
    周进度报告(十)
    周进度报告(九)
    一线架构师阅读笔记02
  • 原文地址:https://www.cnblogs.com/wphl-27/p/11525923.html
Copyright © 2011-2022 走看看