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 相关文章推荐
php gethostbyname获取域名ip地址函数详解
Jan 24 Javascript
返回页面顶部top按钮通过锚点实现(自写)
Aug 30 Javascript
setTimeout自动触发一个js的方法
Jan 15 Javascript
jquery实现checkbox 全选/全不选的通用写法
Feb 22 Javascript
jQuery基于当前元素进行下一步的遍历
May 20 Javascript
JavaScript中的alert()函数使用技巧详解
Dec 29 Javascript
JS实现动态移动层及拖动浮层关闭的方法
Apr 30 Javascript
JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)
Dec 14 Javascript
详解用node-images 打造简易图片服务器
May 08 Javascript
element-ui组件中input等的change事件中传递自定义参数
May 22 Javascript
js中的this的指向问题详解
Aug 29 Javascript
Openlayers显示瓦片网格信息的方法
Sep 28 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
fleaphp下不确定的多条件查询的巧妙解决方法
2008/09/11 PHP
PHP使用gmdate实现将一个UNIX 时间格式化成GMT文本的方法
2015/03/19 PHP
js 操作select相关方法函数
2009/12/06 Javascript
jQuery jqgrid 对含特殊字符json 数据的 Java 处理方法
2011/01/01 Javascript
Javascript中克隆一个数组的实现代码
2013/12/06 Javascript
理解jQuery stop()方法
2014/11/21 Javascript
在Node.js中使用HTTP上传文件的方法
2015/06/23 Javascript
12个非常实用的JavaScript小技巧【推荐】
2016/05/18 Javascript
详解Node.js模块间共享数据库连接的方法
2016/05/24 Javascript
JS Canvas定时器模拟动态加载动画
2016/09/17 Javascript
微信小程序表单验证错误提示效果
2017/05/19 Javascript
使用yeoman构建angular应用的方法
2017/08/14 Javascript
如何理解Vue的.sync修饰符的使用
2017/08/17 Javascript
vue父组件向子组件动态传值的两种方法
2017/11/11 Javascript
vue-router相关基础知识及工作原理
2018/03/16 Javascript
基于vue.js中关于下拉框的值默认及绑定问题
2018/08/22 Javascript
从零开始搭建vue移动端项目到上线的步骤
2018/10/15 Javascript
Vue.js中 v-model 指令的修饰符详解
2018/12/03 Javascript
Python3爬虫学习之应对网站反爬虫机制的方法分析
2018/12/12 Python
python中字符串数组逆序排列方法总结
2019/06/23 Python
python执行scp命令拷贝文件及文件夹到远程主机的目录方法
2019/07/08 Python
Python如何在DataFrame增加数值
2020/02/14 Python
详解django中Template语言
2020/02/22 Python
python利用opencv实现SIFT特征提取与匹配
2020/03/05 Python
在Python中使用K-Means聚类和PCA主成分分析进行图像压缩
2020/04/10 Python
windows10 pycharm下安装pyltp库和加载模型实现语义角色标注的示例代码
2020/05/07 Python
Java多线程实现四种方式原理详解
2020/06/02 Python
scrapy在python爬虫中搭建出错的解决方法
2020/11/22 Python
计算机毕业生求职信
2014/06/10 职场文书
乡镇党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
整改落实情况汇报材料
2014/10/29 职场文书
2015年安康杯竞赛活动总结
2015/03/26 职场文书
刑事上诉状(无罪)
2015/05/23 职场文书
嵌入式Redis服务器在Spring Boot测试中的使用教程
2021/07/21 Redis
Python进程池与进程锁之语法学习
2022/04/11 Python
Java中的Kafka为什么性能这么快及4大核心详析
2022/09/23 Java/Android