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 相关文章推荐
jQuery设置与获取HTML,文本和值的简单实例
Feb 26 Javascript
jquery让指定的元素闪烁显示的方法
Mar 17 Javascript
javascript实现base64 md5 sha1 密码加密
Sep 09 Javascript
理解javascript定时器中的setTimeout与setInterval
Feb 23 Javascript
jQuery on()方法绑定动态元素的点击事件无响应的解决办法
Jul 07 Javascript
JS查找字符串中出现最多的字符及个数统计
Feb 04 Javascript
js时间戳格式化成日期格式的多种方法介绍
Feb 16 Javascript
webpack4.x开发环境配置详解
Aug 04 Javascript
利用jsonp解决js读取本地json跨域的问题
Dec 11 Javascript
AngularJS实现的自定义过滤器简单示例
Feb 02 Javascript
javascript实现打砖块小游戏(附完整源码)
Sep 18 Javascript
vue动态绑定style样式
Apr 20 Vue.js
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中使用websocket详解
2016/09/23 PHP
基于ThinkPHP5框架使用QueryList爬取并存入mysql数据库操作示例
2019/05/25 PHP
在laravel中使用with实现动态添加where条件
2019/10/10 PHP
PHP设计模式入门之迭代器模式原理与实现方法分析
2020/04/26 PHP
php的lavarel框架中join和orWhere的用法
2020/12/28 PHP
JQuery中的ready函数冲突的解决方法
2010/05/17 Javascript
关于onScroll事件在IE6下每次滚动触发三次bug说明
2011/09/21 Javascript
php图像生成函数之间的区别分析
2012/12/06 Javascript
jQuery对下拉框,单选框,多选框的操作
2014/02/21 Javascript
jquery高级编程的最佳实践详解
2014/03/23 Javascript
JavaScript面向对象编程入门教程
2014/04/16 Javascript
用jquery实现的一个超级简单的下拉菜单
2014/05/18 Javascript
JS创建类和对象的两种不同方式
2014/08/08 Javascript
详解js前端代码异常监控
2017/01/11 Javascript
JS常用的几种数组遍历方式以及性能分析对比实例详解
2018/04/11 Javascript
JavaScript实现的文本框placeholder提示文字功能示例
2018/07/25 Javascript
微信小程序使用setData修改数组中单个对象的方法分析
2018/12/30 Javascript
jquery操作select常见方法大全【7种情况】
2019/05/28 jQuery
vue 全局环境切换问题
2019/10/27 Javascript
JS前后端实现身份证号验证代码解析
2020/07/23 Javascript
Javascript文本框脚本实现方法解析
2020/10/30 Javascript
JavaScript 判断浏览器是否是IE
2021/02/19 Javascript
[42:35]2018DOTA2亚洲邀请赛3月30日 小组赛A组 VG VS OpTic
2018/03/31 DOTA
[49:12]完美世界DOTA2联赛PWL S2 Magma vs GXR 第二场 11.29
2020/12/02 DOTA
Python实现的彩票机选器实例
2015/06/17 Python
python 同时读取多个文件的例子
2019/07/16 Python
python jenkins 打包构建代码的示例代码
2019/11/29 Python
window环境pip切换国内源(pip安装异常缓慢的问题)
2019/12/31 Python
sealed修饰符是干什么的
2012/10/23 面试题
银行党员批评与自我批评
2014/10/15 职场文书
工厂仓库管理员岗位职责
2015/04/09 职场文书
早会开场白台词大全
2015/06/01 职场文书
劳动保障事务所个人工作总结
2015/08/12 职场文书
党校团干班培训心得体会
2016/01/06 职场文书
php TP5框架生成二维码链接
2021/04/01 PHP