zoukankan      html  css  js  c++  java
  • 金额转换文章(100=>零佰)

     1 export function convertCurrency(money) {
     2   //汉字的数字
     3   let cnNums = new Array('零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖');
     4   //基本单位
     5   let cnIntRadice = new Array('', '拾', '佰', '仟');
     6   //对应整数部分扩展单位
     7   let cnIntUnits = new Array('', '万', '亿', '兆');
     8   //对应小数部分单位
     9   let cnDecUnits = new Array('角', '分', '毫', '厘');
    10   //整数金额时后面跟的字符
    11   let cnInteger = '整';
    12   //整型完以后的单位
    13   let cnIntLast = '元';
    14   //最大处理的数字
    15   let maxNum = 999999999999999.9999;
    16   //金额整数部分
    17   let integerNum;
    18   //金额小数部分
    19   let decimalNum;
    20   //输出的中文金额字符串
    21   let chineseStr = '';
    22   //分离金额后用的数组,预定义
    23   let parts;
    24 
    25   if (money == '') {
    26     return '';
    27   }
    28   money = parseFloat(money);
    29   if (money >= maxNum) {
    30     //超出最大处理数字
    31     return '';
    32   }
    33   if (money == 0) {
    34     chineseStr = cnNums[0] + cnIntLast + cnInteger;
    35     return chineseStr;
    36   }
    37   //转换为字符串
    38   money = money.toString();
    39   if (money.indexOf('.') == -1) {
    40     integerNum = money;
    41     decimalNum = '';
    42   } else {
    43     parts = money.split('.');
    44     integerNum = parts[0];
    45     decimalNum = parts[1].substr(0, 4);
    46   }
    47   //获取整型部分转换
    48   if (parseInt(integerNum, 10) > 0) {
    49     var zeroCount = 0;
    50     var IntLen = integerNum.length;
    51     for (var i = 0; i < IntLen; i++) {
    52       var n = integerNum.substr(i, 1);
    53       var p = IntLen - i - 1;
    54       var q = p / 4;
    55       var m = p % 4;
    56       if (n == '0') {
    57         zeroCount++;
    58       } else {
    59         if (zeroCount > 0) {
    60           chineseStr += cnNums[0];
    61         }
    62         //归零
    63         zeroCount = 0;
    64         chineseStr += cnNums[parseInt(n)] + cnIntRadice[m];
    65       }
    66       if (m == 0 && zeroCount < 4) {
    67         chineseStr += cnIntUnits[q];
    68       }
    69     }
    70     chineseStr += cnIntLast;
    71   }
    72   //小数部分
    73   if (decimalNum != '') {
    74     var decLen = decimalNum.length;
    75     for (var i = 0; i < decLen; i++) {
    76       var n = decimalNum.substr(i, 1);
    77       if (n != '0') {
    78         chineseStr += cnNums[Number(n)] + cnDecUnits[i];
    79       }
    80     }
    81   }
    82   if (chineseStr == '') {
    83     chineseStr += cnNums[0] + cnIntLast + cnInteger;
    84   } else if (decimalNum == '') {
    85     chineseStr += cnInteger;
    86   }
    87   return chineseStr;
    88 }
  • 相关阅读:
    我为什么要选择RabbitMQ ,RabbitMQ简介,各种MQ选型对比(转载)
    spring boot 使用application.properties 进行外部配置
    Nginx+Springboot+Vue 前后端分离 解决跨域问题
    windows7下RabbitMQ的安装
    七牛云 如何配置域名的 CNAME
    springboot接口 接收参数为实体对象跟MultipartFile对象报错。
    数据库性能优化之SQL语句优化(下)
    数据库性能优化之SQL语句优化(上)
    七个对我最好的职业建议
    程序员最艰巨的十大任务
  • 原文地址:https://www.cnblogs.com/zhuyujie/p/14266857.html
Copyright © 2011-2022 走看看