- 首先分析金额的单位可分为元、拾、佰、仟、万、亿、兆等
- 分别表示为1、10、100、1000、10000、100000000、1000000000000
- 去掉拾、佰、仟后元、万、亿、兆等可得规律兆为亿的10000倍、亿为万的10000倍、万为元的10000倍
- 则可根据此规律若得到金额数值小于10000的金额可直接使用元来表示、若是得到的金额数值大于等于10000的金额则可循环遍历将当前金额每次除以10000直至金额数值小于10000时,可根据循环次数得到当前金额的单位
function handleMoney(num) {
let AmountUnitlist = ["元", "万元", "亿", "兆", '京', '垓', '杼']
let strnum = num.toString()
let AmountUnit = ''
AmountUnitlist.find((item, index) => {
let newNum = ''
if (strnum.indexOf('.') !== -1) {
newNum = strnum.substring(0, strnum.indexOf('.'))
} else {
newNum = strnum
}
if (newNum.length < 5) {
AmountUnit = item
return true
} else {
strnum = (newNum * 1 / 10000).toString()
}
})
let money = {num: 0, unit: ""}
money.num = (strnum * 1).toFixed(2)
money.unit = AmountUnit
return money
}