当前位置:首页 »“秋了秋”个人博客 » 前端编程 » Js保留小数位数四舍五入不足位数添零

Js保留小数位数四舍五入不足位数添零

作者:秋了秋 发表时间:2017年02月21日

这个小函数比小程序实用多了~,项目急,在网上找了一遍有没有现成的函数,没有一个中(wan)用(mei)的东西,干脆自己动手,丰衣足食了。 这个函数可以对任意数字保留自定义小数位数,保留规则是包准的四舍五入,不足位数添0替补:

function round(num,digits){
	if(isNaN(num)){
		return "NaN";
	}
	
	num = num.toString();
	var dot = num.indexOf(".");
	if(dot==-1){
		if(!digits){
			return num;
		}
		var zero = "";
		for(var i =0; i<digits;i++){
 			zero += "0";
 		}
 		return (num+"."+zero);
 	}else{
 		var integer = num.split(".")[0];
 		var decimals = num.split(".")[1];
 		var newDecimals;
 		if(!digits){
 			return decimals.charAt(0)>=5?integer*1+1:integer;
		}
		if(decimals.length > digits){
			var keyNum = decimals.charAt(digits-1);
			newDecimals = decimals.substr(0,digits-1)+(decimals.charAt(digits)>=5?keyNum*1+1:keyNum);
			return (integer+"."+newDecimals);
		}else{
			var zero = "";
			for(var i =0; i<digits-decimals.length;i++){
				zero += "0";
			}
			newDecimals = decimals+zero;
			return (integer+"."+newDecimals);
		}
	}
}
round(2.5485,2);//2.55
round(2.5485,3);//2.549
round(2.5485,6);//2.548500
round(2.5485,0);//3
round(2.5485);//3
round(2.4485);//2
round(2.4485,0);//2

如果你不要末尾的0,直接将返回值乘以1: round(2.5485,6)*1;//2.5485

0
文章作者: “秋了秋”个人博客,本站鼓励原创。
转载请注明本文地址:http://netblog.cn/blog/482.html
目录: 前端编程标签: 保留小数 7468次阅读

请求播放音乐,请点击播放

登 录
点击获取验证码
还没账号?点击这里