阿拉伯数字转金额大写
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 传递数据
- 广东宏远:俱乐部内有密接者 决定延迟出队参赛2022-10-04
- 台媒:小S确诊新冠紧急停工,节目暂停录制2022-10-04
- 中方两回合挫败美英澳“洗白”图谋!2022-10-10
- 翟天临学术不端事件20192025-04-18
- 韩国宣布对朝鲜实施单边制裁,外交部回应2022-10-14
- 东方航空计划于10月底恢复多条国际航线2022-10-17
- 新变异株BF.7有哪些特点?湖北疾控专家解答2022-10-09
- 新疆10月17日新增本土“8+133”2022-10-18
- 这部电影火了!网友:值得受到更多关注2022-10-17
- 侠客岛:美军为啥对一块中国磁铁神经过敏?2022-10-11
- 河南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
