digitToChineseCapital(digit) {
const numberMap = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖']
const unitMap = ['', '拾', '佰', '仟', '万', '拾万', '佰万', '仟万', '亿', '拾亿', '佰亿', '仟亿']
const decimalUnitMap = ['角', '分']
// 获取整数部分和小数部分
let integerPart = String(Math.floor(digit))
let decimalPart = (digit % 1).toFixed(2).slice(-2)
// 处理整数部分
let chineseInteger = ''
if (integerPart === '0') {
chineseInteger = '零'
} else {
for (let i = integerPart.length - 1
chineseInteger = numberMap[parseInt(integerPart[i])] + unitMap[integerPart.length - 1 - i] + chineseInteger
}
chineseInteger = chineseInteger.replace(/零[零拾佰仟万]*$/, '').replace(/^零+/, '')
}
// 添加单位“元”,但如果是零则不添加
if (chineseInteger !== '零' && !chineseInteger.endsWith('元')) {
chineseInteger += '元'
}
// 处理小数部分
let chineseDecimal = ''
for (let i = 0
if (decimalPart[i] !== '0' || (i === 1 && decimalPart[i] === '0' && decimalPart[i - 1] !== '0')) {
chineseDecimal += numberMap[decimalPart[i]] + decimalUnitMap[i]
}
}
// 去除小数部分多余的零
chineseDecimal = chineseDecimal.replace(/^零+/, '')
// 如果小数部分为空或者只有分,则不显示“角”
if (chineseDecimal.endsWith('角')) {
chineseDecimal = chineseDecimal.slice(0, -1)
}
// 返回最终结果
return `${chineseInteger}${chineseDecimal ? ('零' + chineseDecimal).replace(/^零+/, '') : ''}`
},
this.digitToChineseCapital(23.03)