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 相关文章推荐
utf8的编码算法 转载
Dec 27 Javascript
js获取控件位置以及不同浏览器中的差别介绍
Aug 08 Javascript
用javascript删除当前行,添加行(示例代码)
Nov 25 Javascript
使用JQuery实现的分页插件分享
Nov 05 Javascript
基于jQuery实现左右图片轮播(原理通用)
Dec 24 Javascript
JavaScript函数中关于valueOf和toString的理解
Jun 14 Javascript
javascript cookie基础应用之记录用户名的方法
Sep 20 Javascript
Jquery和Js获得元素标签名称的方法总结
Oct 08 Javascript
javascript实现简单的可随机变色网页计算器示例
Dec 30 Javascript
jQuery Ajax自定义分页组件(jquery.loehpagerv1.0)实例详解
May 01 jQuery
layui使用label标签的方法
Sep 14 Javascript
JS数组方法join()用法实例分析
Jan 18 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 缓存实现代码及详细注释
2010/05/16 PHP
PHP图片裁剪函数(保持图像不变形)
2014/05/04 PHP
PHP中实现crontab代码分享
2015/03/26 PHP
PHP中调用C/C++制作的动态链接库的教程
2016/03/10 PHP
PHP实现适用于文件内容操作的分页类
2016/06/15 PHP
php登录超时检测功能实例详解
2017/03/21 PHP
laravel5实现微信第三方登录功能
2018/12/06 PHP
Mac系统下搭建Nginx+php-fpm实例讲解
2020/12/15 PHP
常用的javascript function代码
2008/05/23 Javascript
AJAX分页的代码(后台asp.net)
2011/02/14 Javascript
BootStrap初学者对弹出框和进度条的使用感觉
2016/06/27 Javascript
AngularJS过滤器filter用法实例分析
2016/11/04 Javascript
ajax分页效果(bootstrap模态框)
2017/01/23 Javascript
H5实现中奖记录逐行滚动切换效果
2017/03/13 Javascript
微信小程序实现的一键拨号功能示例
2019/04/24 Javascript
浅入深出Vue之组件使用
2019/07/11 Javascript
解决layer弹出层的内容页点击按钮跳转到新的页面问题
2019/09/14 Javascript
vue 页面回退mounted函数不执行的解决方案
2020/07/26 Javascript
python检测远程端口是否打开的方法
2015/03/14 Python
Python使用Scrapy保存控制台信息到文本解析
2017/12/27 Python
python MysqlDb模块安装及其使用详解
2018/02/23 Python
python实现堆和索引堆的代码示例
2018/03/19 Python
PyCharm 设置SciView工具窗口的方法
2019/01/15 Python
python实现接口并发测试脚本
2019/06/25 Python
解决使用export_graphviz可视化树报错的问题
2019/08/09 Python
Python图像处理模块ndimage用法实例分析
2019/09/05 Python
Python爬虫JSON及JSONPath运行原理详解
2020/06/04 Python
用Python匹配HTML tag的时候,<.*>和<.*?>有什么区别
2012/11/04 面试题
自荐信怎么写呢?
2013/12/09 职场文书
《厄运打不垮的信念》教学反思
2014/04/13 职场文书
学校清明节活动总结
2014/07/04 职场文书
有关九一八事变的演讲稿
2014/09/14 职场文书
公安机关纪律作风整顿剖析
2014/10/10 职场文书
2015年物业管理员工工作总结
2015/10/15 职场文书
2016继续教育培训学习心得体会
2016/01/19 职场文书
《称赞》教学反思
2016/02/17 职场文书