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 相关文章推荐
枚举的实现求得1-1000所有出现1的数字并计算出现1的个数
Sep 10 Javascript
jQuery之过滤元素操作小结
Nov 30 Javascript
jQuery实时显示鼠标指针位置和键盘ASCII码
Mar 28 Javascript
jQuery使用each方法与for语句遍历数组示例
Jun 16 Javascript
Bootstrap基本组件学习笔记之进度条(15)
Dec 08 Javascript
javascript表单正则应用
Feb 04 Javascript
jQuery复合事件结合toggle()方法的用法示例
Jun 10 jQuery
jQuery实现动态给table赋值的方法示例
Jul 04 jQuery
js 监控iframe URL的变化实例代码
Jul 12 Javascript
JavaScript基础进阶之数组方法总结(推荐)
Sep 04 Javascript
js实现点击按钮复制文本功能
Jul 20 Javascript
Vue中Object.assign清空数据报错的解决方案
Mar 03 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 XML备份Mysql数据库
2009/05/27 PHP
php for 循环语句使用方法详细说明
2010/05/09 PHP
关于PHP中字符串与多进制转换函数的实例代码
2016/11/03 PHP
网页运行时提示对象不支持abigimage属性或方法
2014/08/10 Javascript
node.js中的buffer.toJSON方法使用说明
2014/12/14 Javascript
jQuery中:last选择器用法实例
2014/12/30 Javascript
对比分析AngularJS中的$http.post与jQuery.post的区别
2015/02/27 Javascript
JavaScript中Date.toSource()方法的使用教程
2015/06/12 Javascript
JS命令模式例子之菜单程序
2016/10/10 Javascript
Json对象和字符串互相转换json数据拼接和JSON使用方式详细介绍(小结)
2016/10/25 Javascript
jQuery实现用户输入自动完成功能
2017/02/13 Javascript
js 获取图像缩放后的实际宽高,位置等信息
2017/03/07 Javascript
js实现简单的二级联动效果
2017/03/09 Javascript
整理一些最近经常遇到的前端面试题
2017/04/25 Javascript
js 获取json数组里面数组的长度实例
2017/10/31 Javascript
webpack打包html里面img后src为“[object Module]”问题
2019/12/22 Javascript
js实现适配移动端的拖动效果
2020/01/13 Javascript
jQuery+ajax实现文件上传功能
2020/12/22 jQuery
[01:00:13]完美世界DOTA2联赛 LBZS vs Forest 第一场 11.07
2020/11/09 DOTA
在Python中使用Neo4j数据库的教程
2015/04/16 Python
python实现对一个完整url进行分割的方法
2015/04/29 Python
Python使用CMD模块更优雅的运行脚本
2015/05/11 Python
python reduce 函数使用详解
2017/12/05 Python
python中的句柄操作的方法示例
2019/06/20 Python
Python对象的属性访问过程详解
2020/03/05 Python
Python如何输出整数
2020/06/07 Python
Html5 Geolocation获取地理位置信息实例
2016/12/09 HTML / CSS
什么是Smarty变量操作符?如何使用Smarty变量操作符
2014/07/18 面试题
钳工实习自我鉴定
2013/09/19 职场文书
房地产出纳岗位职责
2013/12/01 职场文书
2014教师研修学习体会
2014/07/08 职场文书
汽车机电维修工求职信
2014/09/30 职场文书
入党介绍人意见范文
2015/06/01 职场文书
企业安全隐患排查治理制度
2015/08/05 职场文书
MySQL千万级数据表的优化实战记录
2021/08/04 MySQL
Android studio 简单计算器的编写
2022/05/20 Java/Android