utils/numToChinese.js
// 把阿拉伯数字转成中文大写
export const numToChinese = (num) => {
if (!/^\d*(\.\d*)?$/.test(num)) {
return ''
}
var AA = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖']
var BB = ['', '拾', '佰', '仟', '万', '亿', '点', '']
var a = ('' + num).replace(/(^0*)/g, '').split('.'), k = 0, re = ''
for (var i = a[0].length - 1; i >= 0; i--) {
switch (k) {
case 0:
re = BB[7] + re
break
case 4:
if (!/^0{4}\\d{' + (a[0].length - i - 1) + '}$/.test(a[0])) {
re = BB[4] + re
}
break
case 8:
re = BB[5] + re
BB[7] = BB[5]
k = 0
break
}
if (k % 4 === 2 && a[0].charAt(i + 2) !== 0 && a[0].charAt(i + 1) === 0) {
re = AA[0] + re
}
if (a[0].charAt(i) !== 0) {
re = AA[a[0].charAt(i)] + BB[k % 4] + re
}
k++
}
if (a.length > 1) { // 加上小数部分(如果有小数部分)
re += BB[6]
for (let i = 0; i < a[1].length; i++) {
re += AA[a[1].charAt(i)]
}
}
var nums = parseFloat(num)
if (nums >= 10 && nums < 20) {
re = re.substr(1)
}
return re
}
使用:
(1)在页面中引入此脚本
import { numToChinese } from '@/utils/numToChinese'
(2)在需要的地方使用
var tmpStr=numToChinese('3.14')
console.info(tmpStr)