javascript数字转大写

/** 
 * 数字转中文大写
 * @param num 要转换的数字
 */ 
function parseNum(num){

	// 单位配置 单位顺序 从大到小 
	// {index: 单位起始位置(从右边开始数), unit: "单位名称"}
	var unitArr = [{index: 8,unit: '亿'}, {index: 4,unit: '万'}, {index: 3,unit: '仟'}, {index: 2, unit: '佰'}, {index: 1,unit: '拾'}, {index: 0, unit: ''}];
	// 数字对应大写
	var capitalNumArr = ['零','壹','贰','叁','肆','伍','陆','柒','捌','玖'];
	// 前方是否添零
	var isZero = false;

	// 解析数字字符串
	var tempParse = function(num){
		var numStr = num.toString();
		var result = "";
		if(numStr.length == 1){
			if(numStr == '0'){
				isZero = true;
			}else{
				if(isZero){
					result += capitalNumArr[0];
					isZero = false;
				}
				result += capitalNumArr[parseInt(numStr)]
			}
		}else{
			for(var a = 0; a < unitArr.length; a++){
				var unit = unitArr[a];

				if(numStr.length > unit.index){
					var unitNum = numStr.substr(0, numStr.length - unit.index);
					var numStr = numStr.substr(numStr.length - unit.index);
					result += tempParse(unitNum, isZero);
					if(!isZero){
						result += unit.unit;
					}
				}
			}
			isZero = false;
		}
		return result;
	}
	return tempParse(num);
}

// 使用
parseNum(105023213);
// 壹亿零伍佰零贰万叁仟贰佰壹拾叁

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值