javascript 格式化数字

/**
 * 数字格式化
 * @param src 源数据
 * @param fengewei 多少位一分割
 * @param baoliuweishu 保留小数位数
 * @param dianhoushifufen 小数点后是否也分割
 * @returns {String} 格式化后字符串
 */

function numberFormat(){
	var len=arguments.length;
	if(len==1){
		var src=arguments[0];
		return Format(src,3,2,false);
	}else if(len==2){
		var src=arguments[0];
		var baoliuweishu=arguments[1];
		return Format(src,3,baoliuweishu,false);
	}else if(len==3){
		var src=arguments[0];
		var fengewei = arguments[1];
		var baoliuweishu=arguments[2];
		return Format(src, fengewei, baoliuweishu,false);
	}else if(len==4){
		var src=arguments[0];
		var fengewei=arguments[1];
		var baoliuweishu=arguments[2];
		var dianhoushifufen=arguments[3];
		return Format(src, fengewei, baoliuweishu,dianhoushifufen);
	}
}
/**
 * 为数字添加分隔符
 * @param src
 * @param fengewei
 * @param baoliuweishu
 * @param dianhoushifufen
 * @returns {String}
 */
function Format(src, fengewei, baoliuweishu, dianhoushifufen) {
	if (typeof src != "number") {
		alert("传入源数据不是数字,请检查");
		return;
	}
	if (typeof fengewei != "number") {
		alert("传入分割位数不是数字,请检查");
		return;
	}else if((fengewei + '').indexOf('.') != -1){
		alert("传入分割位数不是整数,请检查");
		return
	}
	if (typeof baoliuweishu != "number") {
		alert("传入保留位数不是数字,请检查");
		return;
	}else if((baoliuweishu + '').indexOf('.') != -1){
		alert("传入分割位数不是整数,请检查");
		return
	}
	if (typeof dianhoushifufen != "boolean") {
		alert("传入小数点后是否保留是true或false,请检查");
		return;
	}
	var currsrc = src + "";
	if (baoliuweishu != "" && baoliuweishu > 0) {
		currsrc = formatFloat(src, baoliuweishu) + "";
	}
	var num = currsrc.split('.');
	var arr = num[0].split('');
	var b = '';var c='';
	var index = 0;var index1=0;
	for ( var i = arr.length - 1; i >= 0; i--) {
		if (index % fengewei == 0) {
			b = arr[i] + ',' + b;
		} else {
			b = arr[i] + b;
		}
		++index;
	}
	b = b.substring(0, b.lastIndexOf(','));
	if(dianhoushifufen==false){
		if (num.length > 1) {
			b = b + '.' + num[1];
		}
	}else{
		var arr1=num[1].split('');
		for ( var i = 0; i <arr1.length; i++) {
			if (index1 % fengewei == 0) {
				if(index1!=0){
					c = c+","+arr1[i];
				}else{
					c=c+arr1[i];
				}
				
			} else {
				c = c+arr1[i] ;
			}
			++index1;
		}
		b=b+"."+c;
	}
	
	return b;
}

/**
 * 保留小数位数
 * 
 * @param src 源数据
 * @param pos 保留位数
 * @returns {Number}
 */
function formatFloat(src, pos) {
	return Math.round(parseFloat(src) * Math.pow(10, pos)) / Math.pow(10, pos);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

玉立琦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值