js实现的格式化数字和金额功能简单示例


Posted in Javascript onJuly 30, 2019

本文实例讲述了js实现的格式化数字和金额功能。分享给大家供大家参考,具体如下:

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

function number_format(number, decimals, dec_point, thousands_sep) {
  /*
  * 参数说明:
  * number:要格式化的数字
  * decimals:保留几位小数
  * dec_point:小数点符号
  * thousands_sep:千分位符号
  * */
  number = (number + '').replace(/[^0-9+-Ee.]/g, '');
  var n = !isFinite(+number) ? 0 : +number,
    prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),
    sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep,
    dec = (typeof dec_point === 'undefined') ? '.' : dec_point,
    s = '',
    toFixedFix = function (n, prec) {
      var k = Math.pow(10, prec);
      return '' + Math.ceil(n * k) / k;
    };
  s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.');
  var re = /(-?\d+)(\d{3})/;
  while (re.test(s[0])) {
    s[0] = s[0].replace(re, "$1" + sep + "$2");
  }
  if ((s[1] || '').length < prec) {
    s[1] = s[1] || '';
    s[1] += new Array(prec - s[1].length + 1).join('0');
  }
  return s.join(dec);
}

如何使用:

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

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

function number_format(number, decimals, dec_point, thousands_sep) {
    /*
    * 参数说明:
    * number:要格式化的数字
    * decimals:保留几位小数
    * dec_point:小数点符号
    * thousands_sep:千分位符号
    * */
    number = (number + '').replace(/[^0-9+-Ee.]/g, '');
    var n = !isFinite(+number) ? 0 : +number,
      prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),
      sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep,
      dec = (typeof dec_point === 'undefined') ? '.' : dec_point,
      s = '',
      toFixedFix = function (n, prec) {
        var k = Math.pow(10, prec);
        return '' + Math.floor(n * k) / k;
      };
    s = (prec ? toFixedFix(n, prec) : '' + Math.floor(n)).split('.');
    var re = /(-?\d+)(\d{3})/;
    console.log(s)
    while (re.test(s[0])) {
      s[0] = s[0].replace(re, "$1" + sep + "$2");
    }
    if ((s[1] || '').length < prec) {
      s[1] = s[1] || '';
      s[1] += new Array(prec - s[1].length + 1).join('0');
    }
    return s.join(dec);
}
var num=number_format(1234567.089, 2, ".", ",");//1,234,567.08
console.log(num)

感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具http://tools.3water.com/code/HtmlJsRun测试上述代码运行结果。

PS:这里再为大家推荐几款计算工具供大家进一步参考借鉴:

在线一元函数(方程)求解计算工具:
http://tools.3water.com/jisuanqi/equ_jisuanqi

科学计算器在线使用_高级计算器在线计算:
http://tools.3water.com/jisuanqi/jsqkexue

在线计算器_标准计算器:
http://tools.3water.com/jisuanqi/jsq

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
JS辨别访问浏览器判断是android还是ios系统
Aug 19 Javascript
使用纯javascript实现放大镜效果
Mar 18 Javascript
jQuery使用slideUp方法实现控制元素缓慢收起
Mar 27 Javascript
Jquery中attr与prop的区别详解
May 27 jQuery
原生JS实现网页手机音乐播放器 歌词同步播放的示例
Feb 02 Javascript
Vue2.0中集成UEditor富文本编辑器的方法
Mar 03 Javascript
vue 优化CDN加速的方法示例
Sep 19 Javascript
vue axios请求频繁时取消上一次请求的方法
Nov 10 Javascript
使用jquery的cookie实现登录页记住用户名和密码的方法
Mar 13 jQuery
vue-resource:jsonp请求百度搜索的接口示例
Nov 09 Javascript
在vue和element-ui的table中实现分页复选功能
Dec 04 Javascript
微信小程序实现可长按移动控件
Nov 01 Javascript
JS实现点击发送验证码 xx秒后重新发送功能
Jul 30 #Javascript
微信小程序渲染性能调优小结
Jul 30 #Javascript
vue通过video.js解决m3u8视频播放格式的方法
Jul 30 #Javascript
微信小程序用户授权弹窗 拒绝时引导用户重新授权实现
Jul 29 #Javascript
vue使用混入定义全局变量、函数、筛选器的实例代码
Jul 29 #Javascript
vue前后分离调起微信支付
Jul 29 #Javascript
详解vue-property-decorator使用手册
Jul 29 #Javascript
You might like
PHP中的正则表达式函数介绍
2012/02/27 PHP
php parse_str() 函数的定义和用法
2016/05/23 PHP
laravel框架实现去掉URL中index.php的方法
2019/10/12 PHP
PHP实现微信公众号验证Token的示例代码
2019/12/16 PHP
PHP 数组操作详解【遍历、指针、函数等】
2020/05/13 PHP
Jquery带搜索框的下拉菜单
2013/05/06 Javascript
appendChild() 或 insertBefore()使用与区别介绍
2013/10/11 Javascript
Vuejs 组件——props数据传递的实例代码
2017/03/07 Javascript
node.JS md5加密中文与php结果不一致的解决方法
2017/05/05 Javascript
jQuery Datatable 多个查询条件自定义提交事件(推荐)
2017/08/24 jQuery
[02:19]DOTA2女子战队FOX视频专访:希望更多美眉一起加入
2013/10/15 DOTA
[02:30]辉夜杯主赛事第二日胜者组半决赛 CDEC.Y赛后采访
2015/12/26 DOTA
Python生成不重复随机值的方法
2015/05/11 Python
python中urllib.unquote乱码的原因与解决方法
2017/04/24 Python
python 实现登录网页的操作方法
2018/05/11 Python
python3+PyQt5 自定义窗口部件--使用窗口部件样式表的方法
2019/06/26 Python
python socket通信编程实现文件上传代码实例
2019/12/14 Python
将tensorflow.Variable中的某些元素取出组成一个新的矩阵示例
2020/01/04 Python
浅谈tensorflow 中tf.concat()的使用
2020/02/07 Python
Python类绑定方法及非绑定方法实例解析
2020/10/09 Python
使用Python封装excel操作指南
2021/01/29 Python
html5-websocket基于远程方法调用的数据交互实现
2012/12/04 HTML / CSS
加拿大建筑和装修专家:Reno-Depot
2017/12/21 全球购物
MADE法国:提供原创设计师家具
2018/09/18 全球购物
《锄禾》教学反思
2014/04/08 职场文书
竞选班干部演讲稿
2014/04/24 职场文书
会展策划与管理专业求职信
2014/06/09 职场文书
体育课外活动总结
2014/07/08 职场文书
小学课外活动总结
2014/07/09 职场文书
园艺专业毕业生求职信
2014/09/02 职场文书
党建工作汇报材料
2014/12/24 职场文书
化验室安全管理制度
2015/08/06 职场文书
食品卫生管理制度
2015/08/06 职场文书
校园安全教育心得体会
2016/01/15 职场文书
情侣餐厅的创业计划书范本!
2019/07/26 职场文书
SQL Server中T-SQL标识符介绍与无排序生成序号的方法
2022/05/25 SQL Server