原生js实现数字三位逗号,分隔。js实现支持逗号分割的货币格式表示法总汇

时间: 2017-12-05阅读: 7225标签: js知识

原生js实现数字三位逗号,分隔。js实现支持货币格式表示法


方法一:

function setMoney(num){//取整,三行逗号隔开
	return parseFloat(num).toLocaleString();
	
}
var m=setMoney(123456.7889);
console.log(m);//输出123,456.789

说明:toLocaleString在将数字转换为字符串的同时,会使用三位分节法进行显示。如果是浮点数,只只保留了小数点后三位数,并进行了四舍五入。

注意:在IE下,浮动数会默认取消,输出结果为123,456


方法二:

function setnum(num){//取整,三行逗号隔开
	/*//获取小数位
    var right=String(num).split('.')[1];
    right=(right==undefined)?'':right;
    */
   num=Math.floor(num);//向下取整,
   num=num.toString(); 
   var len=num.length,
   		r=len%3;
   if(len<=3){
   	return num;
   }
   num=r>0?num.slice(0,r)+","+num.slice(r,len).match(/\d{3}/g).join(","):num.slice(r,len).match(/\d{3}/g).join(","); 
   return num; 
};
var m=setnum(123456.789);
console.log(m);//输出123,456

说明:slice 方法用于截取字符串中的一部分并返回该部分字符串。match方式代表正则表达式的匹配,最后通过join将元素放入一个字符串,用逗号隔开。


方法三

function setnum(num){//保留2位小数,如果没小数位自动补全.00
    if(num && num!=null){  
        num = String(num);  
        var left=num.split('.')[0],right=num.split('.')[1];  
        right = right ? (right.length>=2 ? '.'+right.substr(0,2) : '.'+right+'0') : '.00';  
        var temp = left.split('').reverse().join('').match(/(\d{1,3})/g);  
        return (Number(num)<0?"-":"") + temp.join(',').split('').reverse().join('')+right;  
    }else if(num===0){   //注意===在这里的使用,如果传入的num为0,if中会将其判定为boolean类型,故而要另外做===判断  
        return '0.00';  
    }else{  
        return "";  
    }  
};  
var m=setnum(123456.789);
console.log(m);//输出123,456.78
m=setnum(123456);
console.log(m);//输出123,456.00

如果要将123,456.78转换为123456.78呢?如下:

function undonum(num){  
    if(num && num!=null){  
        num = String(num);  
        var group = num.split('.');  
        var left = group[0].split(',').join('');  
        return Number(left+"."+group[1]);  
    }else{  
        return "";  
    }  
}; 
var m=undonum('123,456.789');
console.log(m);//输出123456.789


站长推荐

1.云服务推荐: 国内主流云服务商,各类云产品的最新活动,优惠券领取。地址:阿里云腾讯云华为云

链接: http://www.fly63.com/article/detial/221

js设备判断_判断移动端还是PC端?判断android还是ios?判断移动端浏览器类型?

js判断用户的浏览设备是移动设备还是PC?判断详细浏览器设备信息。判断微信、新浪、QQ打开。判断是android系统还是ios系统...

为什么javascript不起作用?

JavaScript是一种属于网络的脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能的。

document.write和innerHTML的区别

document.write只能重绘整个页面,innerHTML可以重绘页面的一部分。 document.write是直接写入到页面的内容流,如果在写之前没有调用document.open, 浏览器会自动调用open。

js中bool值转换以及逻辑运算&&、||、 !!的使用

js作为一门弱类型语言,导致几乎所有数据都能转换为bool的类型,js转换 规则 。了解转换规则目的掌握逻辑运算符&&、||、 !!的使用

js基础_如何理解作用域和作用域链?

作用域外,无法引用作用域内的变量;离开作用域后,作用域的变量的内存空间会被清除,比如执行完函数或者关闭浏览器,作用域与执行上下文是完全不同的两个概念。我曾经也混淆过他们,但是一定要仔细区分。JavaScript代码的整个执行过程,分为两个阶段,代码编译阶段与代码执行阶段。

手写JavaScript中的bind方法

bind方法返回的是一个绑定this后的函数,并且该函数并没有执行,需要手动去调用。(从这一点看bind函数就是一个高阶函数,而且和call,apply方法有区别)。bind方法可以绑定this,传递参数。注意,这个参数可以分多次传递。

你不知道的 js 保留字

先是笼统的说一下有什么保留字,保留字的话根据犀牛书的划分,可有分为以下几类:基础保留字、严格模式下的保留字、严格模式下的不完全保留字、ECMAScript3的保留字、ECMAScipt 5 的保留字、全局变量和函数

数字在JavaScript中是如何编译的

JavaScript中的所有数字都是浮点数。这篇博客文章解释了这些浮点数如何在64位二进制内部表示。浮点数并不一定等于小数,定点数也并不一定就是整数。所谓浮点数就是小数点在逻辑上是不固定的,而定点数只能表示小数点固定的数值

WebSocket的原理及WebSocket API的使用,js中如何运用websocket

WebSocket是HTML5下一种新的协议,为解决客户端与服务端实时通信而产生的技术。其本质是先通过HTTP/HTTPS协议进行握手后创建一个用于交换数据的TCP连接

js实现获取手机相册并上传

当初有很多人说使用form方法将文件封装来上传,可是因为要照顾到从相机中选择图片,所以一直没有去做。 后来看到了Uploader的方法来传文件,感觉自己找到了 。是使用plus.uploader来完成的

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!