1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Js将数字金额转化为中文大写金额

Js将数字金额转化为中文大写金额

时间:2023-06-04 17:15:42

相关推荐

Js将数字金额转化为中文大写金额

/*** 数字转大写金额* @param number* @returns string*/export function numberChinese (money) {// 汉字的数字let cnNums = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖']// 基本单位let cnIntRadice = ['', '拾', '佰', '仟']// 对应整数部分扩展单位let cnIntUnits = ['', '万', '亿', '兆']// 对应小数部分单位let cnDecUnits = ['角', '分', '厘', '毫']// 整数金额时后面跟的字符let cnInteger = '整'// 整型完以后的单位let cnIntLast = '元'// 最大处理的数字let maxNum = 999999999999999.9999// 金额整数部分let integerNum// 金额小数部分let decimalNum// 输出的中文金额字符串let chineseStr = ''// 分离金额后用的数组,预定义let partsif (money === '') {return ''}money = parseFloat(money)if (money >= maxNum) {// 超出最大处理数字return ''}if (money === 0) {chineseStr = cnNums[0] + cnIntLast + cnIntegerreturn chineseStr}// 转换为字符串money = money.toString()if (money.indexOf('.') === -1) {integerNum = moneydecimalNum = ''} else {parts = money.split('.')integerNum = parts[0]decimalNum = parts[1].substr(0, 4)}// 获取整型部分转换if (parseInt(integerNum, 10) > 0) {let zeroCount = 0let IntLen = integerNum.lengthfor (let i = 0; i < IntLen; i++) {let n = integerNum.substr(i, 1)let p = IntLen - i - 1let q = p / 4let m = p % 4if (n === '0') {zeroCount++} else {if (zeroCount > 0) {chineseStr += cnNums[0]}// 归零zeroCount = 0chineseStr += cnNums[parseInt(n)] + cnIntRadice[m]}if (m === 0 && zeroCount < 4) {chineseStr += cnIntUnits[q]}}chineseStr += cnIntLast}// 小数部分if (decimalNum !== '') {let decLen = decimalNum.lengthfor (let i = 0; i < decLen; i++) {const n = decimalNum.substr(i, 1)if (n !== '0') {chineseStr += cnNums[Number(n)] + cnDecUnits[i]}}}if (chineseStr === '') {chineseStr += cnNums[0] + cnIntLast + cnInteger} else if (decimalNum === '') {chineseStr += cnInteger}return chineseStr}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。