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 相关文章推荐
JavaScript面向对象之静态与非静态类
Feb 03 Javascript
jquery动画2.元素坐标动画效果(创建一个图片走廊)
Aug 24 Javascript
js简易namespace管理器 实例代码
Jun 21 Javascript
JavaScript新窗口与子窗口传值详解
Feb 11 Javascript
js对象内部访问this修饰的成员函数示例
Apr 27 Javascript
ECMA5数组的新增方法有哪些及forEach()模仿实现
Nov 03 Javascript
基于Vue如何封装分页组件
Dec 16 Javascript
基于AngularJS实现表单验证功能
Jul 28 Javascript
最实用的JS数组函数整理
Dec 05 Javascript
详解swiper在vue中的应用(以3.0为例)
Sep 20 Javascript
JavaScript实现随机点名程序
Mar 25 Javascript
解决vue加scoped后就无法修改vant的UI组件的样式问题
Sep 07 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简单的会话类代码
2011/08/08 PHP
php读取excel文件的简单实例
2013/08/26 PHP
Parse正式发布开源PHP SDK
2014/08/11 PHP
php微信高级接口群发 多客服
2016/06/23 PHP
利用PHP判断文件是否为图片的方法总结
2017/01/06 PHP
PHP全局使用Laravel辅助函数dd
2019/12/26 PHP
jQuery数据缓存功能的实现思路及简单模拟
2013/05/27 Javascript
js仿QQ中对联系人向左滑动、滑出删除按钮的操作
2016/04/07 Javascript
Javascript随机标签云代码实例
2016/06/21 Javascript
原生JS实现几个常用DOM操作API实例
2017/01/19 Javascript
javascript checkbox/radio onchange不能兼容ie8处理办法
2017/06/13 Javascript
详解小程序循环require之坑
2019/03/08 Javascript
详解如何探测小程序返回到webview页面
2019/05/14 Javascript
vue中实现点击按钮滚动到页面对应位置的方法(使用c3平滑属性实现)
2019/12/29 Javascript
详解webpack的clean-webpack-plugin插件报错
2020/10/16 Javascript
JavaScript 防抖和节流遇见的奇怪问题及解决
2020/11/20 Javascript
Vue2.x-使用防抖以及节流的示例
2021/03/02 Vue.js
[01:24:09]Ti4 冒泡赛第二轮DK vs C9 1
2014/07/14 DOTA
[01:33:30]DOTA2-DPC中国联赛 正赛 RNG vs Phoenix BO3 第二场 2月5日
2021/03/11 DOTA
Python 3.6 性能测试框架Locust安装及使用方法(详解)
2017/10/11 Python
python实现微信跳一跳辅助工具步骤详解
2018/01/04 Python
python3使用smtplib实现发送邮件功能
2018/05/22 Python
解决新版Pycharm中Matplotlib图像不在弹出独立的显示窗口问题
2019/01/15 Python
python代理工具mitmproxy使用指南
2019/07/04 Python
使用Pandas的Series方法绘制图像教程
2019/12/04 Python
在python中logger setlevel没有生效的解决
2020/02/21 Python
keras多显卡训练方式
2020/06/10 Python
深入理解css属性的选择对动画性能的影响
2016/04/20 HTML / CSS
H5仿微信界面教程(一)
2017/07/05 HTML / CSS
使用canvas压缩图片上传的方法示例
2020/02/07 HTML / CSS
世界上最大的隐形眼镜商店:1-800 Contacts
2018/11/03 全球购物
英国在线潜水商店:Simply Scuba
2019/03/25 全球购物
Hotels.com印度:酒店预订
2019/05/11 全球购物
Made in Design德国:设计师家具、灯具和装饰
2019/10/31 全球购物
2015年电教工作总结
2015/05/26 职场文书
JavaScript设计模式之原型模式详情
2022/06/21 Javascript