阿拉伯数字转金额大写
2024-08-15 09:59:25
function numberParseChina(money) {
//汉字的数字
let cnNums = new Array('零','壹','贰','叁','肆','伍','陆','柒','捌','玖')
//基本单位
let cnIntRadice = new Array('', '拾', '佰', '仟')
//对应整数部分扩展单位
let cnIntUnits = new Array('', '万', '亿', '兆', '京')
//对应小数部分单位
let cnDecUnits = new Array('角', '分', '毫', '厘')
//整数金额时后面跟的字符
let cnInteger = '整'
//整型完以后的单位
let cnIntLast = '圆'
//最大处理的数字
let maxNum = 99999999999999999999.9999
//金额整数部分
let integerNum
//金额小数部分
let decimalNum
//输出的中文金额字符串
let chineseStr = ''
//分离金额后用的数组,预定义
let parts
if (money == '') {
return ''
}
money = parseFloat(money)
if (money >= maxNum) {
//超出最大处理数字
return ''
}
if (money == 0) {
chineseStr = cnNums[0] + cnIntLast + cnInteger
return chineseStr
}
//转换为字符串
money = money.toString()
if (money.indexOf('.') == -1) {
integerNum = money
decimalNum = ''
} else {
parts = money.split('.')
integerNum = parts[0]
decimalNum = parts[1].substr(0, 4)
}
//获取整型部分转换
if (parseInt(integerNum, 10) > 0) {
let zeroCount = 0
let IntLen = integerNum.length
for (let i = 0; i < IntLen; i++) {
let n = integerNum.substr(i, 1)
let p = IntLen - i - 1
let q = p / 4
let m = p % 4
if (n == '0') {
zeroCount++
} else {
if (zeroCount > 0) {
chineseStr += cnNums[0]
}
//归零
zeroCount = 0
chineseStr += cnNums[parseInt(n)] + cnIntRadice[m]
}
if (m == 0 && zeroCount < 4) {
chineseStr += cnIntUnits[q]
}
}
chineseStr += cnIntLast
}
//小数部分
if (decimalNum != '') {
let decLen = decimalNum.length
for (let i = 0; i < decLen; i++) {
let 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
}
上一篇:layui open 传递数据
下一篇:纯CSS实现立体纸张折叠动效
- 祝贺!中国女排晋级世锦赛八强2022-10-09
- 插茱萸、吃重阳糕、饮菊花酒,重阳习俗了解一下2022-10-04
- 祝贺!国乒女团8战8胜夺冠2022-10-08
- 中国到底盖了多少房子2022-10-12
- 10月10日湖北新增本土无症状感染者29例2022-10-11
- 基辅、利沃夫……乌克兰多地关键基础设施遭导弹袭击2022-10-10
- 河南10月2日新增本土无症状感染者14例2022-10-03
- 北京新增5例感染者详情2022-10-08
- 新冠口服药研发进行时,谁是下一个“真实生物”?2022-10-12
- 更具传染性、逃逸性!国内一地检出新变异株2022-10-07
- 河南10月2日新增本土无症状感染者14例2022-10-03
- 防疫工作履职不力!呼和浩特5名干部被问责2022-10-06
- 猴痘潜伏期长于新冠,如何应对外部输入风险?2022-10-07
- 国庆档收官:《万里归途》票房夺冠 主流大片走红2022-10-08
- 上海10月8日新增本土确诊2例、本土无症状感染者19例2022-10-09
- 沪指节后首日失守3000点,市场调整之下机会在哪?2022-10-10
- 动态生成带删除样式的框2024-07-05