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 相关文章推荐
bgsound 背景音乐 的一些常用方法及特殊用法小结
May 11 Javascript
javascript天然的迭代器
Oct 29 Javascript
js获取元素到文档区域document的(横向、纵向)坐标的两种方法
May 17 Javascript
变量声明时命名与变量作为对象属性时命名的区别解析
Dec 06 Javascript
jquery选择器之属性过滤选择器详解
Jan 27 Javascript
jQuery通过点击行来删除HTML表格行的实现示例
Sep 10 Javascript
Angular.JS去掉访问路径URL中的#号详解
Mar 30 Javascript
JS滚动到指定位置导航栏固定顶部
Jul 03 Javascript
Javascript中从学习bind到实现bind的过程
Jan 05 Javascript
如何获取vue单文件自身源码路径
May 06 Javascript
原生js无缝轮播插件使用详解
Mar 09 Javascript
Jquery Fade用法详解
Nov 06 jQuery
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设计模式 Proxy (代理模式)
2011/06/26 PHP
PHP学习笔记 用户注册模块用户类以及验证码类
2011/09/20 PHP
PHP字符串函数系列之nl2br(),在字符串中的每个新行 (\n) 之前插入 HTML 换行符br
2011/11/10 PHP
thinkPHP的Html模板标签使用方法
2012/11/13 PHP
PHP调用全国天气预报数据接口查询天气示例
2019/02/20 PHP
jQuery学习笔记之控制页面实现代码
2012/02/27 Javascript
js写的评论分页(还不错)
2013/12/23 Javascript
JS版的date函数(和PHP的date函数一样)
2014/05/12 Javascript
JS实现简单的键盘打字的效果
2015/04/24 Javascript
跟我学习javascript的闭包
2015/11/16 Javascript
jQuery事件处理的特征(事件命名机制)
2016/08/23 Javascript
手机浏览器 后退按钮强制刷新页面方法总结
2016/10/09 Javascript
JavaScript使用readAsDataUrl方法预览图片
2017/05/10 Javascript
Angular如何引入第三方库的方法详解
2017/07/13 Javascript
vue 项目常用加载器及配置详解
2018/01/22 Javascript
用Axios Element实现全局的请求loading的方法
2018/03/15 Javascript
小程序实现留言板
2018/11/02 Javascript
vue v-for循环重复数据无法添加问题解决方法【加track-by='索引'】
2019/03/15 Javascript
浏览器JavaScript调试功能无法使用解决方案
2020/09/18 Javascript
Python实现批量转换文件编码的方法
2015/07/28 Python
剖析Python的Tornado框架中session支持的实现代码
2015/08/21 Python
python实现按任意键继续执行程序
2016/12/30 Python
使用python和Django完成博客数据库的迁移方法
2018/01/05 Python
python模拟登陆,用session维持回话的实例
2018/12/27 Python
Django文件存储 默认存储系统解析
2019/08/02 Python
pytorch之添加BN的实现
2020/01/06 Python
python用WxPython库实现无边框窗体和透明窗体实现方法详解
2020/02/21 Python
基于python requests selenium爬取excel vba过程解析
2020/08/12 Python
市场营销专业个人自荐信格式
2013/09/21 职场文书
品质口号大全
2014/06/17 职场文书
干部考核工作总结
2015/08/12 职场文书
员工聘用合同范本
2015/09/21 职场文书
Java Optional<Foo>转换成List<Bar>的实例方法
2021/06/20 Java/Android
MySQL的索引你了解吗
2022/03/13 MySQL
 Redis 串行生成顺序编码的方法实现
2022/04/03 Redis
一文了解Java动态代理的原理及实现
2022/07/07 Java/Android