当前位置:网站首页 > Vue.js开发 > 正文

js封装,小写金额转化为大写金额,用于发票金额、合同资金等

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封装,小写金额转化为大写金额,用于发票金额、合同资金等的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • eclipse 最新版本“Oxygen Release (4.7.0)”在线安装hibernate插件2024-12-02 08:54:10
  • 阿里云centos7安装mysql5.72024-12-02 08:54:10
  • vue缓存之动态keep-alive2024-12-02 08:54:10
  • 前端js常用正则验证2024-12-02 08:54:10
  • Nginx配置设置反向代理报错: (13: Permission denied) while connecting to upstream, client: ...2024-12-02 08:54:10
  • 自定义vue指令v-drag & 封装自定义可拖拽弹框 & id定义样式、computed实现动态style动态class & 具名插槽name属性定义slot & 引入全局组件 & 定义全局样式2024-12-02 08:54:10
  • vue中,表单增加一行删除一行上移一行下移一行2024-12-02 08:54:10
  • vue3中,el-table级联表格——default-expand-all & row-key & show-overflow-tooltip & 树状表格计算总价合计总计2024-12-02 08:54:10
  • vue中,el-table树形数据与懒加载【实例】(二)——封装拖拽上传el-upload & 本地下载模板-public下的file文件夹 & JSON.parse转对象 & 表单禁止输入特殊字符2024-12-02 08:54:10
  • vue中,404页面——当前页面不存在,直接跳转首页2024-12-02 08:54:10
  • 全屏图片