var rmbAmount = 356.400;
var rmbAmount_ZH = "";//大写金额
//分离整数位与小数位
var rmbAmountArr = rmbAmount.toString().split(".");
var inter = rmbAmountArr[0].split("");
var decimal = rmbAmountArr[1].split("");
//汉字的数字及单位
var cnNums = new Array('零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖');
var cnIntRadice = new Array('仟','佰','拾','万','仟','佰','拾','圆');
var cnDecUnits = new Array('角','分','厘');
//金额单位数组下标基准
var benchmark = cnIntRadice.length - inter.length;
//整数部分金额大写
for(var i = 0; i < inter.length; i++){
rmbAmount_ZH = rmbAmount_ZH + cnNums[inter[i]] + " ";//金额
rmbAmount_ZH = rmbAmount_ZH + cnIntRadice[benchmark+i] + " ";//金额单位
}
//小数部分金额大写
for(var i = 0; i < decimal.length; i++){
rmbAmount_ZH = rmbAmount_ZH + cnNums[decimal[i]] + " ";//金额
rmbAmount_ZH = rmbAmount_ZH + cnDecUnits[i] + " ";//金额单位
}
最终效果就是金额大写,且间隔一个空格,下图为新建html中script中复制该代码的alert,原有运行环境是有“零分零厘”的,问题出在split(".")上,暂不处理
改进版***
var amountTotal = 0.00;
for (var i = 0; i < vm.detailList.length; i++) {
var amount = vm.detailList[i].gatheringAmountDetail;
amountTotal = (Number(amountTotal) + Number(amount)).toFixed(2);
}
//修改小写金额
vm.amountTotal = amountTotal;
// $("#amountTotal").html = amountTotal;
//修改大写金额
if (vm.amountTotal == 0) {
vm.rmbAmount_ZH = "零 元";//折合人民币金额
} else {
var rmbAmount_ZH = "";//大写金额
//分离整数位与小数位
var rmbAmountArr = vm.amountTotal.toString().split(".");
var inter = rmbAmountArr[0];
var decimal = rmbAmountArr[1] == undefined ? "0" : rmbAmountArr[1];
//汉字的数字及单位
var cnNums = new Array('零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖');
var cnIntRadice = new Array('亿', '仟', '佰', '拾', '万', '仟', '佰', '拾', '圆');
var cnDecUnits = new Array('角', '分', '厘');
//金额单位数组下标基准
var benchmark = cnIntRadice.length - inter.length;
//整数部分金额大写
var isZero = false;
for (var i = 0; i < inter.length; i++) {
if (inter[i] == 0) {
if (isZero) {
rmbAmount_ZH = rmbAmount_ZH.substr(0, rmbAmount_ZH.length - 2);
if (cnIntRadice[benchmark + i] == "万" || cnIntRadice[benchmark + i] == "圆" || cnIntRadice[benchmark + i] == "亿") {
rmbAmount_ZH = rmbAmount_ZH + cnIntRadice[benchmark + i] + " ";
isZero = false;
} else {
rmbAmount_ZH = rmbAmount_ZH + "零 ";
}
} else {
if (cnIntRadice[benchmark + i] == "万" || cnIntRadice[benchmark + i] == "圆" || cnIntRadice[benchmark + i] == "亿") {
rmbAmount_ZH = rmbAmount_ZH + cnIntRadice[benchmark + i] + " ";
isZero = false;
} else {
rmbAmount_ZH = rmbAmount_ZH + "零 ";
isZero = true;
}
}
} else {
rmbAmount_ZH = rmbAmount_ZH + cnNums[inter[i]] + " ";
rmbAmount_ZH = rmbAmount_ZH + cnIntRadice[benchmark + i] + " ";
isZero = false;
}
}
//小数部分金额大写
if (decimal == 0) {
rmbAmount_ZH += "整 ";
} else {
for (var i = 0; i < decimal.length; i++) {
if (decimal[i] == 0) {
rmbAmount_ZH = rmbAmount_ZH + "零 ";
} else {
rmbAmount_ZH = rmbAmount_ZH + cnNums[decimal[i]] + " ";
rmbAmount_ZH = rmbAmount_ZH + cnDecUnits[i] + " ";
}
}
}
vm.amountTotal_ZH = rmbAmount_ZH;
}