将小写金额改成大写金额

function convertToChinese(num) {
 // fraction数组定义了小数部分的单位
 const fraction = ['角', '分', '厘', '毫'];
 // digit数组定义了0-9的中文大写表示
 const digit = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'];
 // unit数组定义了整数部分的单位,包括个位、十位、百位等,以及元、万、亿等大单位
 const unit = [['元', '万', '亿'], ['', '拾', '佰', '仟']];
 // 如果num小于0,头部添加'欠'
 let head = num < 0 ? '欠' : '';
 // 取num的绝对值进行计算
 num = Math.abs(num);
 let s = '';
 // 处理小数部分
 for (let i = 0; i < fraction.length; i++) {
 s += (digit[Math.floor(num * 10 * Math.pow(10, i)) % 10] + fraction[i]).replace(/零./, '');
 }
 s = s || '';
 // 处理整数部分
 num = Math.floor(num);
 for (let i = 0; i < unit[0].length && num > 0; i++) {
 let p = '';
 for (let j = 0; j < unit[1].length && num > 0; j++) {
 p = digit[num % 10] + unit[1][j] + p;
 num = Math.floor(num / 10);
 }
 s = p.replace(/(零.)*零$/, '').replace(/^$/, '') + unit[0][i] + s;
 }
 // 返回处理后的字符串
 return head + s.replace(/(零.)*零元/, '').replace(/(零.)+/g, '').replace(/^整$/, '');
}

你可能感兴趣的:(js,前端,javascript,开发语言)