博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js格式化数字和金额
阅读量:6432 次
发布时间:2019-06-23

本文共 2486 字,大约阅读时间需要 8 分钟。

格式化数字,格式化金额:

1 function number_format(number, decimals, dec_point, thousands_sep) { 2     /* 3     * 参数说明: 4     * number:要格式化的数字 5     * decimals:保留几位小数 6     * dec_point:小数点符号 7     * thousands_sep:千分位符号 8     * */ 9     number = (number + '').replace(/[^0-9+-Ee.]/g, '');10     var n = !isFinite(+number) ? 0 : +number,11         prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),12         sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep,13         dec = (typeof dec_point === 'undefined') ? '.' : dec_point,14         s = '',15         toFixedFix = function (n, prec) {16             var k = Math.pow(10, prec);17             return '' + Math.ceil(n * k) / k;18         };19  20     s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.');21     var re = /(-?\d+)(\d{3})/;22     while (re.test(s[0])) {23         s[0] = s[0].replace(re, "$1" + sep + "$2");24     }25  26     if ((s[1] || '').length < prec) {27         s[1] = s[1] || '';28         s[1] += new Array(prec - s[1].length + 1).join('0');29     }30     return s.join(dec);31 }

  

如何使用:

1   var num=number_format(1234567.089, 2, ".", ",");//1,234,567.09

 

 

再来一个,直接舍去的办法:

    

1 function number_format(number, decimals, dec_point, thousands_sep) { 2         /* 3         * 参数说明: 4         * number:要格式化的数字 5         * decimals:保留几位小数 6         * dec_point:小数点符号 7         * thousands_sep:千分位符号 8         * */ 9         number = (number + '').replace(/[^0-9+-Ee.]/g, '');10         var n = !isFinite(+number) ? 0 : +number,11  12             prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),13             sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep,14             dec = (typeof dec_point === 'undefined') ? '.' : dec_point,15             s = '',16             toFixedFix = function (n, prec) {17                 var k = Math.pow(10, prec);18                 return '' + Math.floor(n * k) / k;19             };20         s = (prec ? toFixedFix(n, prec) : '' + Math.floor(n)).split('.');21         var re = /(-?\d+)(\d{3})/;22         console.log(s)23         while (re.test(s[0])) {24             s[0] = s[0].replace(re, "$1" + sep + "$2");25         }26  27         if ((s[1] || '').length < prec) {28             s[1] = s[1] || '';29             s[1] += new Array(prec - s[1].length + 1).join('0');30         }31         return s.join(dec);32     }33     number_format(1234567.089, 2, ".", ",");//1,234,567.08

 

      

 

 

转载于:https://www.cnblogs.com/wxcbg/p/5845844.html

你可能感兴趣的文章
Fedora24下MySQL开发环境搭建
查看>>
shell实战训练营Day20
查看>>
jQuery 之 TAB切换菜单
查看>>
mysql 数据库集群搭建:(二)3台CentOS-7安装Percona-XtraDB-Cluster-57集群
查看>>
Jenkins实战演练之Windows系统节点管理
查看>>
MySQL高可用架构之MHA
查看>>
excel2013使用分列功能拆分数据
查看>>
如何玩转小程序+公众号?手把手教你JeeWx小程序CMS与公众号关联
查看>>
kibana平台增加安全认证
查看>>
1.8 nginx域名跳转
查看>>
PHP面向对象之接口编程
查看>>
使用 Docker Compose 管理多个容器实例
查看>>
ThinkPHP 删除数据记录 delete 方法
查看>>
Gradle学习笔记(二)--创建Java项目
查看>>
IntelliJ IDEA 快捷键
查看>>
qury-easyui DataGrid 整合struts2增删查该入门实例(三)
查看>>
if a point is inside a square with mathematics
查看>>
Ubuntu(Linux)使用Eclipse搭建C/C++编译环境
查看>>
skyline无插件web的数据加载解析
查看>>
python基础学习第一天
查看>>