/*** [number_format 参数说明:]* @param  {[type]} number        [number:要格式化的数字]* @param  {[type]} decimals      [decimals:保留几位小数]* @param  {[type]} dec_point     [dec_point:小数点符号]* @param  {[type]} thousands_sep [thousands_sep:千分位符号]* @param  {[type]} roundtag      [roundtag:舍入参数,默认 "ceil" 向上取,"floor"向下取,"round" 四舍五入]* @return {[type]}               [description]*    */
function number_format(number, decimals, dec_point, thousands_sep, roundtag) {number = (number + '').replace(/[^0-9+-Ee.]/g, '');roundtag = roundtag || "ceil"; //"ceil","floor","round"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);console.log();return '' + parseFloat(Math[roundtag](parseFloat((n * k).toFixed(prec * 2))).toFixed(prec * 2)) / 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);
}
console.log(number_format(2, 2, ".", ",")) //"2.00"
console.log(number_format(3.7, 2, ".", ",")) //"3.70"
console.log(number_format(3, 0, ".", ",")) //"3"
console.log(number_format(9.0312, 2, ".", ",")) //"9.03"
console.log(number_format(9.00, 2, ".", ",")) //"9.00"
console.log(number_format(39.715001, 2, ".", ",", "floor")) //"39.71"
console.log(number_format(9.7, 2, ".", ",")) //"9.70"
console.log(number_format(39.7, 2, ".", ",")) //"39.70"
console.log(number_format(9.70001, 2, ".", ",")) //"9.71"
console.log(number_format(39.70001, 2, ".", ",")) //"39.71"
console.log(number_format(9996.03, 2, ".", ",")) //"9996.03"
console.log(number_format(1.797, 3, ".", ",", "floor")) //"1.797"

参数有点多,你可以根据你自己的需求去修改。

推荐的类库 Numeral.js 和 accounting.js

Numeral.js

一个用于格式化和操作数字的JavaScript库。数字可以被格式化为货币,百分比,时间,几个小数位数,千分位等等。 您也可以随时创建自定义格式。

官网及文档:http://numeraljs.com/

GitHub:https://github.com/adamwdraper/Numeral-js

accounting.js

一个轻量级的JavaScript库,用于格式化数字,金额和货币等。

官网及文档:http://openexchangerates.github.io/accounting.js/

GitHub:accounting.js

如果这篇文章对您有帮助,您可以打赏我

转载于:https://www.cnblogs.com/yeminglong/p/5301295.html

JS实现数字千位符格式化方法相关推荐

  1. JS实现的4种数字千位符格式化方法分享

    所谓的数字千分位形式,即从个位数起,每三位之间加一个逗号.例如"10,000".针对这个需求,我起初写了这样一个函数: 方法一 代码如下: // 方法一 function toTh ...

  2. python正则分辨逗号去除数字千位符

    直接去除逗号的方案太粗暴,会错杀正常行文中的逗号,目标是去除数字中夹杂全角半角逗号. # 去除千位符的函数 def delect_qianweifu(sentence):sentence=senten ...

  3. js千位符 | js 千位分隔符 | js 金额格式化

    js 千位分隔符 千位分隔符,其实就是数字中的逗号.依西方的习惯,人们在数字中加进一个符号,以免因数字位数太多而难以看出它的值.所以人们在数字中,每隔三位数加进一个逗号,也就是千位分隔符,以便更加容易 ...

  4. Android 字符串格式化 千位符

    Android 字符串格式化 千位符 字符串格式化工具类 千位符 & 千位符保留小数点后两位 import java.text.DecimalFormat; import java.text. ...

  5. java 格式化千位符 逗号隔开 附加货币单位

    直接上干货. 格式化千位符,以逗号隔开,有很多种实现方式,这里直说自己认为最简单的一种. /*** - format("###,###.##", 111222.34567) ==& ...

  6. JS 数字千位分隔符且保留两位小数

    数字千位分隔符且保留两位小数 1.仅需要整数位千位分隔 num.toLocaleString() 2.仅需要保留两位小数 num.toFixed(2) 3.需要千位分隔符且带两位小数 Thousand ...

  7. Vue 数字千位分隔符

    涉及的数据比较多,写一个过滤器,将所有的数据都过滤一下,挂载到全局,不需要每个页面引用了. 创建一个js文件,实现数字千位分隔符 export function numberToCurrencyNo( ...

  8. JS实现数字自动转换人民币金额(自动格式化输入的数字/千位分隔符)

    这个货币转换JS代码,可以实现自动格式化输入的数字,自动千位分隔符 <script> function cc(s){if(/[^0-9\.]/.test(s)) return " ...

  9. element-ui 为<el-table>内数据 添加数字千位分割符

    因用若依做后台管理脚手架,所以首先把以下方法写在Utils文件夹下的 ruoyi.js 里 1 export function stateFormat(row, column, cellValue) ...

  10. js正则表达式实现千分位符

    function numberThousands (number, thousandsSeperator = ',') {return String(number).replace(/(\d)(?=( ...

最新文章

  1. 万字长文 | 23 个问题 TCP 疑难杂症全解析
  2. appium简明教程(7)——Desired Capabilities详解
  3. 让Java程序只运行一个实例
  4. vue 项目中 点击回车键 自动登录
  5. JPA规范:一对多、一对一、多对多的双向关联与级联操作以及JPA联合主键
  6. 用.Net开发Windows服务初探
  7. oracle文件系统挂载点,挂载和取消挂载 Oracle Solaris 文件系统
  8. android 用年月日初始化date_Android 系统自带api选择年月日 日历
  9. python共享内存通信mapofview_python map eval strPython socket模块实现的udp通信功能示例...
  10. Java中的内存模型JMM与线程
  11. java中如何实现货币兑换_java货币转换
  12. 推荐5款免费网盘,空间大不限速!
  13. uc看视频显示服务器有点忙,UC3软件常见问题处理方案
  14. 解决pip下载速度慢的问题
  15. 提高组CSP-S初赛模拟试题整理
  16. sql内连接、左连接、右连接以及全连接查询
  17. 二级python——绘制七彩圆圈
  18. 机器学习翻译任务中的constrain decoding 实现流程方法详解
  19. python作业练习
  20. java led警示牌,一种新型LED三角警示牌的制作方法

热门文章

  1. 电话本写完了,发个1.0吧
  2. Mosets Tree开发笔记
  3. 测试与开发的冲突举例
  4. 69篇关于微博的研究论文和报告
  5. fckeditor出现the server didn't send back a proper XML response问题的解决(因为使用了“主题”)...
  6. 统计字符串出现的次数(参照传智播客视频)
  7. Django Mysql数据库-聚合查询与分组查询
  8. 计算机二级C语言冲刺笔记。
  9. HDU2050 由直线分割平面推广到折线分割平面
  10. 浅谈移动前端的最佳实践