在项目涉及到交易的时候往往会需要将数字的金额转为中文,以便用户确认,所以整理了这个方法,有不足之处欢迎指正
function convertToChinaNum(num) {
let arr = num.toString().split('.')
if (arr.length == 2) {
num = arr[0]
}
var arr1 = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'];
var arr2 = ['', '拾', '佰', '仟', '万', '拾', '佰', '仟', '亿', '拾', '佰', '仟','万', '拾', '佰', '仟','亿'];
if(!num || isNaN(num)){
return "";
}
var english = num.toString().split("")
var result = "";
for (var i = 0; i < english.length; i++) {
var des_i = english.length - 1 - i;
result = arr2[i] + result;
var arr1_index = english[des_i];
result = arr1[arr1_index] + result;
}
result = result.replace(/零(仟|佰|拾)/g, '零').replace(/拾零/g, '拾');
result = result.replace(/零+/g, '零');
result = result.replace(/零亿/g, '亿').replace(/零万/g, '万');
result = result.replace(/亿万/g, '亿');
result = result.replace(/零+$/, '')
result = result.replace(/^壹拾/g, '拾');
if (arr.length == 2) {
result = (result + "元" + arr1[arr[1][0]] + "角" + (arr[1][1] ? ( arr1[arr[1][1]] + "分") : ""))
return result
} else {
return result + "元"
}
}