搜档网
当前位置:搜档网 › 将阿拉伯货币数字转化成中文(大写)

将阿拉伯货币数字转化成中文(大写)

/*
功能:将货币数字(阿拉伯数字)(小写)转化成中文(大写)

参数:Num为字符型,小数点之后保留两位,例:Arabia_to_Chinese("1234.06")
说明:1.目前本转换仅支持到 拾亿(元) 位,金额单位为元,不能为万元,最小单位为分
2.不支持负数
*/
function toRmb(num) {
try {
return toRmbExcute(num);
} catch(e) {
return "";
}
}

function toRmbExcute(num) {
if (tIsNull(num) || isNaN(num)) {
return "";
}
num = num.toString().replace(/[, ]/g, "").replace("¥", "");

//---字符处理完毕,开始转换,转换采用前后两部分分别转换---//
var part = num.split(".");
var newchar = "";
//小数点前进行转化
for (var i = part[0].length - 1; i >= 0; i--) {
if (part[0].length > 10) {//若数量超过拾亿单位,提示
return "";
}
var perchar = part[0].charAt(i);
var tmpChar = "";
switch (perchar) {
case "0": tmpChar = "零" + tmpChar; break;
case "1": tmpChar = "壹" + tmpChar; break;
case "2": tmpChar = "贰" + tmpChar; break;
case "3": tmpChar = "叁" + tmpChar; break;
case "4": tmpChar = "肆" + tmpChar; break;
case "5": tmpChar = "伍" + tmpChar; break;
case "6": tmpChar = "陆" + tmpChar; break;
case "7": tmpChar = "柒" + tmpChar; break;
case "8": tmpChar = "捌" + tmpChar; break;
case "9": tmpChar = "玖" + tmpChar; break;
}
switch (part[0].length - i - 1) {
case 0: tmpChar = tmpChar + "元"; break;
case 1: if (perchar != 0) tmpChar = tmpChar + "拾"; break;
case 2: if (perchar != 0) tmpChar = tmpChar + "佰"; break;
case 3: if (perchar != 0) tmpChar = tmpChar + "仟"; break;
case 4: tmpChar = tmpChar + "万"; break;
case 5: if (perchar != 0) tmpChar = tmpChar + "拾"; break;
case 6: if (perchar != 0) tmpChar = tmpChar + "佰"; break;
case 7: if (perchar != 0) tmpChar = tmpChar + "仟"; break;
case 8: tmpChar = tmpChar + "亿"; break;
case 9: tmpChar = tmpChar + "拾"; break;
}
newchar = tmpChar + newchar;
}
//小数点之后进行转化
if (num.indexOf(".") != -1) {
if (part[1].length > 2) {
part[1] = part[1].substr(0, 2);
}
for (i = 0; i < part[1].length; i++) {
tmpChar = "";
perchar = part[1].charAt(i);
switch (perchar) {
case "0": tmpChar = "零" + tmpChar; break;
case "1": tmpChar = "壹" + tmpChar; break;
case "2": tmpChar = "贰" + tmpChar; break;
case "3": tmpChar = "叁" + tmpChar; break;
case "4": tmpChar = "肆" + tmpChar; break;

case "5": tmpChar = "伍" + tmpChar; break;
case "6": tmpChar = "陆" + tmpChar; break;
case "7": tmpChar = "柒" + tmpChar; break;
case "8": tmpChar = "捌" + tmpChar; break;
case "9": tmpChar = "玖" + tmpChar; break;
}
if (i == 0) tmpChar = tmpChar + "角";
if (i == 1) tmpChar = tmpChar + "分";
newchar = newchar + tmpChar;
}
}
//替换所有无用汉字
while (newchar.search("零零") != -1)
newchar = newchar.replace("零零", "零");
newchar = newchar.replace("零亿", "亿");
newchar = newchar.replace("亿万", "亿");
newchar = newchar.replace("零万", "万");
newchar = newchar.replace("零元", "元");
newchar = newchar.replace("零角", "");
newchar = newchar.replace("零分", "");

if (newchar.charAt(newchar.length - 1) == "元" || newchar.charAt(newchar.length - 1) == "角")
newchar = newchar + "整";
return newchar;
}

相关主题