[JS]用循环的方式实现金额格式自动增加小数点
[JS]用循环的方式实现金额格式自动增加小数点
[JS]用循环的方式实现金额格式自动增加小数点
- 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
使用正则(比较不足的是还是得自己去判断小数点后面的位数,有更智能的正则请通知我~)
- function regexNum(str){
- var regex = /(\d)(?=(\d\d\d)+(?!\d))/g;
- if(str.indexOf(".") == -1){
- strstr= 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_2str_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
热门文章推荐
- [JS]window.location获取url各项参数详解
- [JS]jQuery,javascript获得网页的高度和宽度
- [JS]视频弹窗视频弹出层videoLightBox(含三种播放器的用法)
- [JS]JS提交中文encodeURI两次转码
- [JS]js版方面encodeURI转码和decodeURI解码的用法实例
- [JS]js取当前机子的时间戳实例
- [JS]AES加密(基于crypto-js)PHP后端解密
- [JS]data:image/png;base64写法的用途及说明
请稍候...