完成将 toChineseNum, 可以将数字转换成中文大写的表示,处理到万级别,例如 toChineseNum(12345),返回 一万二千三百四十五。
思路解析: – 零到九的汉字索引数组 – 个十百千万的计量单位 – 数字转为字符串解析,每个十进制有单独的数字表示 – 对零的处理,重复多个零只读一个,后面无数字的省略零 – 对超出万计量的重新按照千百十的计量
const toChineseNum = (num) => {
let dtext=['','十','百','千','万']
let len=num.toString().length
let numArr=num.toString().split('')
let numTxt=''
const toT=(numIndex)=>{
const arr=['零','一','二','三','四','五','六','七','八','九']
return arr[numIndex]
}
for(let i=1;i<=len;i++){
if(len>5&&i<(len-3)){
if(i==(len-4)){
numTxt+=numArr[i-1]==0?'':toT(numArr[i-1])
numTxt+='万'
}else{
if((numArr[i-2]==0&&numArr[i-1]==0)||((numArr[i-1]==0)&&(numArr[len-5]==0)&&numArr[i]==0)){
numTxt+=''
}else{
numTxt+=(((numArr[i-1]==0)&&(numArr[len-5]!=0))||(numArr[i]!=0&&numArr[i-1]==0))?'零':(toT(numArr[i-1])+dtext[len-i-4])
}
}}else{
if((numArr[i-1]==0&&i==len)||(numArr[i]==0&&numArr[i-1]==0)){
numTxt+=''
}else{
numTxt+=numArr[i-1]==0?'零':(toT(numArr[i-1])+dtext[len-i])
}
}}
return numTxt
}
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有