前端笔试——数字金额转中文

227 阅读1分钟

输入一串数字,将其转化成中文

例如:12300000 

输出:壹仟贰佰叁拾万圆

例如:123456789

输出:壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖圆

例如:-123

 输出:[负]壹佰贰拾叁圆

我的代码:

var num = 12000000

var arr = [];
var zf = 0;

if(num<0){
	zf = 1;
	num = num*-1;
}

var k=0;
while(num>=1){
	if(k == 0){
		arr.unshift("圆");
	}else if(k==1){
		arr.unshift("拾");
	}else if(k==2){
		arr.unshift("佰");
	}
	else if(k==3){
		arr.unshift("仟");
	}
	else if(k==4){
		arr.unshift("万");
	}
	else if(k==5){
		arr.unshift("拾");
	}
	else if(k==6){
		arr.unshift("佰");
	}
	else if(k==7){
		arr.unshift("仟");
	}
	else if(k==8){
		arr.unshift("亿");
	}
	
	arr.unshift(num%10);
	num = Math.floor(num/10);
	k++;
	
}
var len = arr.length;
for(var i = 0;i<len;i++){
	if(arr[i]=="0"&&arr[i+1]=="亿"){
		arr[i] = "";
		arr[i+1] = "";
	}else if(arr[i]=="0"&&arr[i+1]=="仟"){
		arr[i] = "";
		arr[i+1] = "";
	}else if(arr[i]=="0"&&arr[i+1]=="佰"){
		arr[i] = "";
		arr[i+1] = "";
	}else if(arr[i]=="0"&&arr[i+1]=="拾"){
		arr[i] = "";
		arr[i+1] = "";
	}else if(arr[i]=="0"&&arr[i+1]=="万"){
		arr[i] = "";
//		arr[i+1] = "";
	}else if(arr[i]=="0"&&arr[i+1]=="圆"){
		arr[i] = "";
	}
}
arr = arr.filter(function(num){
	return num != "";
})
if(zf==1){
	arr.unshift("[负]");
}
var str = arr.join("")
//console.log(arr);
str = str.replace(",");
str = str.replace("1","壹")
str = str.replace("2","贰")
str = str.replace("3","叁")
str = str.replace("4","肆")
str = str.replace("5","伍")
str = str.replace("6","陆")
str = str.replace("7","柒")
str = str.replace("8","捌")
str = str.replace("9","玖")
str = str.replace("0","零")
console.log(str);