zoukankan      html  css  js  c++  java
  • 金额大写转换函数


    JavaScript

    
    function transform(tranvalue) {
        try {
            var i = 1;
            var dw2 = new Array("", "万", "亿"); //大单位
            var dw1 = new Array("拾", "佰", "仟"); //小单位
            var dw = new Array("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"); //整数部分用
            //以下是小写转换成大写显示在合计大写的文本框中     
            //分离整数与小数
            var source = splits(tranvalue);
            var num = source[0];
            var dig = source[1];
            //转换整数部分
            var k1 = 0; //计小单位
            var k2 = 0; //计大单位
            var sum = 0;
            var str = "";
            var len = source[0].length; //整数的长度
            for (i = 1; i <= len; i++) {
                  var n = source[0].charAt(len - i); //取得某个位数上的数字
                  var bn = 0;
                  if (len - i - 1 >= 0) {
                    bn = source[0].charAt(len - i - 1); //取得某个位数前一位上的数字
                  }
                  sum = sum + Number(n);
                  if (sum != 0) {
                    str = dw[Number(n)].concat(str); //取得该数字对应的大写数字,并插入到str字符串的前面
                    if (n == '0') sum = 0;
                  }
                  if (len - i - 1 >= 0) { //在数字范围内
                    if (k1 != 3) { //加小单位
                          if (bn != 0) {
                            str = dw1[k1].concat(str);
                          }
                          k1++;
                    } else { //不加小单位,加大单位
                          k1 = 0;
                          var temp = str.charAt(0);
                          if (temp == "万" || temp == "亿") //若大单位前没有数字则舍去大单位
                          str = str.substr(1, str.length - 1);
                          str = dw2[k2].concat(str);
                          sum = 0;
                    }
                  }
                  if (k1 == 3){ //小单位到千则大单位进一
                    k2++;
                  }
            }
            //转换小数部分
            var strdig = "";
            if (dig != "") {
                  var n = dig.charAt(0);
                  if (n != 0) {
                    strdig += dw[Number(n)] + "角"; //加数字
                  }
                  var n = dig.charAt(1);
                  if (n != 0) {
                    strdig += dw[Number(n)] + "分"; //加数字
                  }
            }
            str += "元" + strdig;
        } catch(e) {
            return "0元";
        }
        return str;
    }
    //拆分整数与小数
    function splits(tranvalue) {
        var value = new Array('', '');
        temp = tranvalue.split(".");
        for (var i = 0; i < temp.length; i++) {
            value = temp;
        }
        return value;
    }
    
    
  • 相关阅读:
    你会做夹具吗?(一)
    DDR3布线设计要点总结
    PCB设计要点-DDR3布局布线技巧及注意事项
    走进JEDEC,解读DDR(下)
    [转]关于STM32 PB3 PB4 如何设置成普通GPIO的配置
    [转]Verilog有符号数与无符号数作运算
    [转]实用光电二极管pd的采样电路
    STM32外部8M晶振不启动
    ALTCLKCTRL核的作用
    [转]如何在Altium Designer中将PCB生成PDF?
  • 原文地址:https://www.cnblogs.com/lalalagq/p/10213510.html
Copyright © 2011-2022 走看看