Javascript将数值转换为金额格式(分隔千分位和自动增加小数点)


Posted in Javascript onJune 22, 2016

在项目里碰到需要把类似'450000'的数字转换为会计记账所用的格式,'450,000.00',分隔千分位和小数点后不够两位数时自动补齐,已下记录几种实现的方式

ps:如果不考虑后面的小数点,最快捷的方法:

"12345678".replace(/[0-9]+?(?=(?:([0-9]{3}))+$)/g,function(a){return a+','}); //输出 12 345 678

1.用循环的方式实现

function formatNum(str){
 var newStr = "";
 var count = 0;

 if(str.indexOf(".")==-1){
  for(var i=str.length-1;i>=0;i--){
   if(count % 3 == 0 && count != 0){
    newStr = str.charAt(i) + "," + newStr;
   }else{
    newStr = str.charAt(i) + newStr;
   }
   count++;
  }
  str = newStr + ".00"; //自动补小数点后两位
  console.log(str)
 }
 else
 {
  for(var i = str.indexOf(".")-1;i>=0;i--){
   if(count % 3 == 0 && count != 0){
    newStr = str.charAt(i) + "," + newStr; //碰到3的倍数则加上“,”号
   }else{
    newStr = str.charAt(i) + newStr; //逐个字符相接起来
   }
   count++;
  }
  str = newStr + (str + "00").substr((str + "00").indexOf("."),3);
  console.log(str)
 }
}

formatNum('13213.24'); //输出13,213.34
formatNum('132134.2'); //输出132,134.20
formatNum('132134'); //输出132,134.00
formatNum('132134.236'); //输出132,134.236

2.使用正则(比较不足的是还是得自己去判断小数点后面的位数,有更智能的正则请通知我~)

function regexNum(str){
 var regex = /(\d)(?=(\d\d\d)+(?!\d))/g;

 if(str.indexOf(".") == -1){

  str= str.replace(regex,',') + '.00';
  console.log(str)

 }else{
  var newStr = str.split('.');
  var str_2 = newStr[0].replace(regex,',');

  if(newStr[1].length <= 1){ 
   //小数点后只有一位时
   str_2 = str_2 + '.' + newStr[1] +'0';
   console.log(str_2)

  }else if(newStr[1].length > 1){ 
   //小数点后两位以上时
   var decimals = newStr[1].substr(0,2);
   var srt_3 = str_2 + '.' + decimals;
   console.log(srt_3)
  }
 }
};
regexNum('23424224'); //输出2,42,224.00 
regexNum('23424224.2'); //输出2,42,224.20
regexNum('23424224.22'); //输出2,42,224.22
regexNum('23424224.233'); //输出2,42,224.23

以上就是本文的全部内容,了解更多JavaScript的语法,大家可以查看:《JavaScript 参考教程》、《JavaScript代码风格指南》,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript[js]获取url参数的代码
Oct 17 Javascript
javascript中onmouse事件在div中失效问题的解决方法
Jan 09 Javascript
js hover 定时器(实例代码)
Nov 12 Javascript
jQuery中队列queue()函数的实例教程
May 03 Javascript
javascript宿主对象之window.navigator详解
Sep 07 Javascript
jQuery中 $ 符号的冲突问题及解决方案
Nov 04 Javascript
鼠标经过出现气泡框的简单实例
Mar 17 Javascript
vue组件实现弹出框点击显示隐藏效果
Oct 26 Javascript
微信小程序全局变量改变监听的实现方法
Jul 15 Javascript
微信小程序图片自适应实现解析
Jan 21 Javascript
jQuery实现简单聊天室
Feb 08 jQuery
JavaScript链式调用原理与实现方法详解
May 16 Javascript
Javascript将数字转化成为货币格式字符串
Jun 22 #Javascript
jQuery soColorPacker 网页拾色器
Jun 22 #Javascript
DIV+CSS+jQ实现省市联动可扩展
Jun 22 #Javascript
Javascript对象字面量的理解
Jun 22 #Javascript
Javascript闭包与函数柯里化浅析
Jun 22 #Javascript
JS中innerHTML和pasteHTML的区别实例分析
Jun 22 #Javascript
JS实现pasteHTML兼容ie,firefox,chrome的方法
Jun 22 #Javascript
You might like
ThinkPHP中自定义目录结构的设置方法
2014/08/15 PHP
PHP文件锁函数flock()详细介绍
2014/11/18 PHP
php操作redis常见方法示例【key与value操作】
2020/04/14 PHP
JQuery 简便实现页面元素数据验证功能
2007/03/24 Javascript
document.onreadystatechange事件的用法分析
2009/10/17 Javascript
javascript算法题 求任意一个1-9位不重复的N位数在该组合中的大小排列序号
2012/07/21 Javascript
javascript去掉代码里面的注释
2015/07/24 Javascript
深入探讨javascript函数式编程
2015/10/11 Javascript
阿里巴巴技术文章分享 Javascript继承机制的实现
2016/01/14 Javascript
jQuery命名空间与闭包用法示例
2017/01/12 Javascript
js 获取图像缩放后的实际宽高,位置等信息
2017/03/07 Javascript
理解Angular的providers给Http添加默认headers
2017/07/04 Javascript
详解RequireJs官方使用教程
2017/10/31 Javascript
vue实现form表单与table表格的数据关联功能示例
2019/01/29 Javascript
关于vue-cli 3配置打包优化要点(推荐)
2019/04/22 Javascript
微信小程序自定义底部弹出框功能
2020/11/18 Javascript
Python 时间处理datetime实例
2008/09/06 Python
python使用wmi模块获取windows下硬盘信息的方法
2015/05/15 Python
利用Python画ROC曲线和AUC值计算
2016/09/19 Python
python对配置文件.ini进行增删改查操作的方法示例
2017/07/28 Python
python实现Flappy Bird源码
2018/12/24 Python
Python QQBot库的QQ聊天机器人
2019/06/19 Python
浅谈python3打包与拆包在函数的应用详解
2020/05/02 Python
详解pytorch中squeeze()和unsqueeze()函数介绍
2020/09/03 Python
在Ubuntu中安装并配置Pycharm教程的实现方法
2021/01/06 Python
CSS3下的渐变文字效果实现示例
2018/03/02 HTML / CSS
英国著名的化妆品折扣网站:Allbeauty.com
2016/07/21 全球购物
为奢侈时尚带来了慈善元素:Olivela
2018/09/29 全球购物
项目开发计划书
2014/01/09 职场文书
护士的自我鉴定
2014/02/07 职场文书
官僚主义现象查摆问题整改措施
2014/10/04 职场文书
公司出纳岗位职责
2015/03/31 职场文书
初中语文教学随笔
2015/08/15 职场文书
小学二年级语文教学反思
2016/03/03 职场文书
赞美教师的句子
2019/09/02 职场文书
JPA如何使用entityManager执行SQL并指定返回类型
2021/06/15 Java/Android