金额按千分位划分、数字按千分位划分(适用所有场景!)

本文介绍两种将大额数字按千分位进行格式化的方法。方法一使用正则表达式匹配和字符串切片实现,适用于纯整数。方法二更全面,能处理包括小数在内的各种数字类型,并确保两位小数的精度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

金额按千分位划分

方法一(此方法只取整):

 	function get_debt(n){  
           var b=parseInt(n).toString();  
           var len=b.length;  
           if(len<=3){return b;}  
           var r=len%3;  
           return r>0?b.slice(0,r)+","+b.slice(r,len).match(/\d{3}/g).join(","):b.slice(r,len).match(/\d{3}/g).join(",");  
	} 

例:

get_debt(1154521)  =1154,521

方法二(此方法保留两位小数):

 	function get_debt(num) {//number、string都可以转换
    	//判断是否有小数点
    	var s = num.toString().indexOf(".");
    	if(s == -1){//是整数
    		return (num || 0).toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,')+".00";
    	}else{//是小数
    		var arr = num.toString().split(".");
    		if(arr.length > 1 && arr[1].length < 2){//一位小数
    			return (arr[0] || 0).toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,') + "." + arr[1] + "0";
    		}else{//两位小数
    			return (arr[0] || 0).toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,') + "." + arr[1];
    		}
    	}
    }

例:

get_debt(1154521)  =1,154,521.00
get_debt(1154521.10)  =1,154,521.10
get_debt(1154521.12301)=1,154,521.12301

方法三(此方法保留所有小数):

	function get_debt(n){ 
		  n = n || 0
		  let xsw = '';
		  if(n){
		    let strN = n.toString();  
		    if(strN.includes(".")){
		      xsw = '.' + strN.split('.')[1]
		    }
		  }
		  var b=parseInt(n).toString();  
		  var len=b.length;  
		  if(len<=3){return b + xsw}  
		  var r=len%3;  
		  return (r>0?b.slice(0,r)+","+b.slice(r,len).match(/\d{3}/g).join(","):b.slice(r,len).match(/\d{3}/g).join(",")) + xsw
	} 

例:

get_debt(1154521.10) =1,154,521.1
get_debt(1154521.1000)=1,154,521.1
get_debt(1154521.110)=1,154,521.11
get_debt(1154521.12301)=1,154,521.12301
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值