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 相关文章推荐
基于jquery的一个浮动框(扩展性比较好 )
Aug 27 Javascript
基于jquery循环map功能的代码
Feb 26 Javascript
js 页面关闭前的出现提示的实现代码
May 25 Javascript
非主流的textarea自增长实现js代码
Dec 20 Javascript
jquery入门—编写一个导航条(可伸缩)
Jan 07 Javascript
iframe子页面与父页面在同域或不同域下的js通信
May 07 Javascript
JavaScript实现找出字符串中第一个不重复的字符
Sep 03 Javascript
jQuery源码分析之jQuery.fn.each与jQuery.each用法
Jan 23 Javascript
使用AngularJS编写较为优美的JavaScript代码指南
Jun 19 Javascript
Node.js Streams文件读写操作详解
Jul 04 Javascript
JS自定义混合Mixin函数示例
Nov 26 Javascript
ES6新特性之模块Module用法详解
Apr 01 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
php产生随机数的两种方法实例代码 输出随机IP
2011/04/08 PHP
json的键名为数字时的调用方式(示例代码)
2013/11/15 PHP
PHP获取网页所有连接的方法(附demo源码下载)
2016/03/30 PHP
php取出数组单个值的方法
2018/03/12 PHP
Laravel框架模板继承操作示例
2018/06/11 PHP
Javascript中暂停功能的实现代码
2007/03/04 Javascript
js 自定义的联动下拉框
2010/02/07 Javascript
JQuery对class属性的操作实现按钮开关效果
2013/10/11 Javascript
jQuery动画效果animate和scrollTop结合使用实例
2014/04/02 Javascript
javascript实现的右下角弹窗实例
2015/04/24 Javascript
jQuery实现鼠标经过图片变亮其他变暗效果
2015/05/08 Javascript
js设置document.domain实现跨域的注意点分析
2015/05/21 Javascript
深入理解JavaScript单体内置对象
2016/06/06 Javascript
JavaScript职责链模式概述
2016/09/17 Javascript
canvas绘图不清晰的解决方案
2017/02/28 Javascript
微信小程序 蓝牙的实现实例代码
2017/06/27 Javascript
js学习总结_选项卡封装(实例讲解)
2017/07/13 Javascript
Node.js创建HTTP文件服务器的使用示例
2018/05/11 Javascript
vue实现自定义日期组件功能的实例代码
2018/11/06 Javascript
vue车牌号校验和银行校验实战
2019/01/23 Javascript
详解nodejs http请求相关总结
2019/03/31 NodeJs
Python学习笔记(一)(基础入门之环境搭建)
2014/06/05 Python
djang常用查询SQL语句的使用代码
2019/02/15 Python
python+django+rest框架配置创建方法
2019/08/31 Python
PyTorch 解决Dataset和Dataloader遇到的问题
2020/01/08 Python
解决selenium+Headless Chrome实现不弹出浏览器自动化登录的问题
2021/01/09 Python
印度领先的在线时尚商店:Koovs
2016/08/28 全球购物
简述安装Slackware Linux系统的过程
2012/01/12 面试题
UNIX文件系统常用命令
2012/05/25 面试题
入团者的自我评价分享
2013/12/02 职场文书
大四自我鉴定
2014/02/08 职场文书
公司合作意向书范文
2014/07/30 职场文书
党员干部群众路线个人整改措施
2014/09/18 职场文书
家长学校教学计划
2015/01/19 职场文书
python调用ffmpeg命令行工具便捷操作视频示例实现过程
2021/11/01 Python
create-react-app开发常用配置教程
2022/06/25 Javascript