• 将一串数字转为大写人民币形式


    数字转人民币大写形式

    function toChinese(str){
    //大写数字
    var arrNum = ['零','壹','贰','叁','肆','伍','陆','柒','捌','玖']
    // 基本单位
    var Intdanwei1 = ['','拾','佰','仟'];
    var Intdanwei2 = ['','万','亿','兆'];
    var Floatdanwei = ['角','分','毫','厘']
    
    var zheng = "整";
    var yuan = '元';
    
    //最大数字
    var maxNum = 9999999999999999.9999
    //整数部分
    var zhengNum;
    //小数部分
    var floatNum;
    //装整形和小数的数组
    var parts;
    //输出的字符串
    var chinese = '';
    
    //参数为空
    if(str == ''){
        return '';
    }
    //参数不为空时
    str = parseFloat(str)
    //最大数字
    if( str > maxNum){
        return '';
    }
    //如果传的数字为0
    if(str == 0){
        chinese = arrNum[0] + zheng + yuan;
    }
    //如果传的数字不为0;
    str = str.toString();
    
    //判断str是否有小数点
    if(str.indexOf('.') == -1){
        zhengNum = str;
        floatNum = '';
    }else{
        parts = str.split('.'); //以点分割为数组
        zhengNum = parts[0];    //整数部分
        floatNum = parts[1].substr(0,4); //保留四位小数
    }
    
    //整数部分转换  
    if(parseInt(zhengNum,10) > 0){
        var count = 0;
        var lens = zhengNum.length;
        for(var i = 0 ; i < lens; i++){
            //每次循环截取一个字符
            var n = zhengNum.substr(i,1);
            //截取的字符在字符串中的位置
            var p = lens - i - 1;
            //根据结果匹配单位
            var q = p/4;
            //根据结果匹配单位
            var m = p%4;
            if(n == '0'){  //添加'零'
                count++;
            }else{
                if(count > 0){
                    //添加'零'
                    chinese += arrNum[0];
                    //恢复count值为0;
                    count = 0;
                }
                chinese += arrNum[Number(n)] + Intdanwei1[m]
            }
            //如果m=0,那么当前字串的位置为4的倍数,根据单位的特点,4位一分割,取得当前字串的单位
            if(m == 0){
                chinese += Intdanwei2[q]
            }
        }
        chinese += yuan;
    }
    
    //小数部分转换
    if(floatNum != ''){
        var floatLen = floatNum.length;
        for(var i = 0 ; i < floatLen; i++){
            var n = floatNum.substr(i,1);
            if(n != '0'){
                chinese += arrNum[parseInt(n)] + Floatdanwei[i]
            }
        }
    }else{
        chinese += zheng;
    };
    
    if(chinese == ''){
         chinese = arrNum[0] + zheng + yuan;
     }
    return chinese;
    }
  • 相关阅读:
    GPU CUDA之——深入理解threadIdx
    需求分析、业务逻辑与数据结构
    软件建模的本质
    浅谈软件需求建模
    软件建模即程序设计
    软件开发从0到1与软件建模
    数据模型所描述的内容包括三个部分:数据结构、数据操作、数据约束。
    观察力与信息搜集能力
    人类为什么写书
    鲁宾斯坦说:"思维是在概括中完成的。"
  • 原文地址:https://www.cnblogs.com/rainbow8590/p/7171348.html
Copyright © 2020-2023  润新知