首页 > 其他分享 >vue中小写数字转大写汉字

vue中小写数字转大写汉字

时间:2023-02-17 10:13:02浏览次数:32  
标签:vue money decimalNum 汉字 chineseStr 大写 cnNums var integerNum

numTocoggle(money){
    //汉字的数字
  var cnNums = new Array('零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖');
  //基本单位
  var cnIntRadice = new Array('', '拾', '佰', '仟');
  //对应整数部分扩展单位
  var cnIntUnits = new Array('', '万', '亿', '兆');
  //对应小数部分单位
  var cnDecUnits = new Array('角', '分', '毫', '厘');
  //整数金额时后面跟的字符
  var cnInteger = '整';
  //整型完以后的单位
  var cnIntLast = '元';
  //最大处理的数字
  var maxNum = 999999999999999.9999;
  //金额整数部分
  var integerNum;
  //金额小数部分
  var decimalNum;
  //输出的中文金额字符串
  var chineseStr = '';
  //分离金额后用的数组,预定义
  var 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) {
    var zeroCount = 0;
    var IntLen = integerNum.length;
    for (var i = 0; i < IntLen; i++) {
      var n = integerNum.substr(i, 1);
      var p = IntLen - i - 1;
      var q = p / 4;
      var 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 != '') {
    var decLen = decimalNum.length;
    for (var i = 0; i < decLen; i++) {
      var 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;
}

  

标签:vue,money,decimalNum,汉字,chineseStr,大写,cnNums,var,integerNum
From: https://www.cnblogs.com/yinian/p/17129141.html

相关文章

  • Vue中.env|.env.development|.env.production文件说明【转载】
    0.介绍模式是VueCLI项目中一个重要的概念,默认情况下,一个VueCLI项目有三种模式:developemt模式用于vue-cli-serviceservetest模式用于vue-cli-servicetest:unitproduc......
  • 用C语言显示汉字的演示程序
    汉字是方块字,宽高相等的汉字库在嵌入式领域有着广泛的应用,且其解析也相对来说是比较简单的。汉字在汉字库中的索引一般会遵循GB2312/GBK编码规则,GB2312/GBK规定汉字编码由......
  • c语言填空:统计输入的字符中所有大写字母的个数
    #include<stdio.h>//用来统计输入的字符中所有大写字母的个数,用#结束输入main(){inta[26],i;charch;for(i=0;i<26;i++)a[i]=【1】;ch=ge......
  • vue 实现网页全屏
    screen(){constelement=document.documentElement;if(this.fullscreen){//退出全屏if(!document.exitFullscreen&&document.exitFullscreen){......
  • Vue3+vite项目在局域网内通过ip在手机端访问
    使用vite启动项目后,想在手机端访问项目,此时是访问不到的在网上查阅了相关内容,小结一下1.修改vite.confifg,js(未使用ts,使用的修改vite,config.ts)exportdefaultdefineCo......
  • vue生命周期和vue组件
    目录vue生命周期vue组件补充知识vue生命周期官方的生命周期图简易图从vue实例创建开始直到实例被销毁,总共经历了8个生命周期钩子【只要写了就会执行】函数钩子:反序......
  • 在 vuex 中建立一个 permission.js 文件用于合并静态和动态的路由规则
    结果会获取完整的用户的路由规则//新建一个vuex模块来专门处理权限相关操作import{constantRoutes,asyncRoutes}from"@/router";exportdefault{namespace......
  • Vue - 4 Vue中与后端交互
    目录Vue-4Vue中与后端交互1.购物车案例2.v-model的修饰符3.什么是跨域问题跨域问题同源策略跨域问题解决思路4.Vue中与后端交互1.使用JQuery中的ajax2.fetch3.axios发送......
  • Vue - 5 生命周期与组件
    目录Vue-5生命周期与组件1.Vue的生命周期钩子函数2.Vue组件Vue-5生命周期与组件1.Vue的生命周期钩子函数钩子函数描述beforeCreate创建Vue实例之前调......
  • VUE生命周期函数/axios与后端交互案例
    axios发送ajax请求与后端交互以后都用它,在vue上,第三方的模块Axios是一个基于promise的HTTP库,还是基于XMLHttpRequest封装的#跨越问题 -浏览器的原因,只要向不是......