function convertToChineseYuan(num) {
let strOutput = '';
let strUnit = '仟佰拾亿仟佰拾万仟佰拾元角分';
num += '00';
const intPos = num.indexOf('.');
if (intPos >= 0) {
num = num.substring(0, intPos) + num.substr(intPos + 1, 2);
}
strUnit = strUnit.substr(strUnit.length - num.length);
for (let i = 0; i < num.length; i++) {
strOutput += '零壹贰叁肆伍陆柒捌玖'.charAt(num.charAt(i)) + strUnit.charAt(i);
}
return strOutput.replace(/零(仟|佰|拾|角)/g, '零').replace(/(零)+/g, '零').replace(/零(万|亿|元)/g, '$1').replace(/(亿)万|壹(拾)/g, '$1$2').replace(/^元零?|零分/g, '').replace(/元$/g, '元整');
}
console.log(convertToChineseYuan(123456.78));
// '拾贰万叁仟肆佰伍拾陆元柒角捌分'