js封装,小写金额转化为大写金额,用于发票金额、合同资金等
代码
<script setup> import { changeBigNum } from '@/utils/tool' import { inject,onMounted,watch,computed,onBeforeUnmount,ref } from 'vue' const allPriceBig = computed(() => { //计算展示总报价的大写数字 return changeBigNum(allPriceForm.value.allPrice) }) //示例 var num = ref('34.56') console.log(changeBigNum(num)) // 叁拾肆元伍角陆分 </script>
封装方法
src\utils\utils.js
// 小写金额转化为大写金额 export function changeBigNum(val){
let cnNums = ['零','壹','贰','叁','肆','伍','陆','柒','捌','玖'] //汉字数字 let cnIntRadice = ['','拾','佰','仟'] //基本单位 let cnIntUnits = ['元','万','亿','兆'] //整数部分扩展单位 let cnDecUnits = ['角','分','毫','厘'] //小数部分扩展单位 // let cnInteger = '整' let cnIntLast = '元' let integerNum //金额的整数部分 let decimalNum //金额的小数部分 let chineseStr = '' //输出的中文金额字符串 let parts; //分离金额后用的数组 if(val== ''){
return '' } if(val == 0){
// return cnNums[0] + cnIntLast + cnInteger return cnNums[0] + cnIntLast } // 转化为字符串 val = val + '' if(val.indexOf('.') == -1){
integerNum = val decimalNum = '' }else{
parts = val.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] } // 归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 chineseStr += cnNums[0]+ cnIntLast }else if(decimalNum == ''){
// chineseStr += cnInteger chineseStr += '' } return chineseStr }
到此这篇js封装,小写金额转化为大写金额,用于发票金额、合同资金等的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/qdvuejs/10670.html