zoukankan      html  css  js  c++  java
  • 将一串数字转为大写人民币形式

    数字转人民币大写形式

    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;
    }
  • 相关阅读:
    Python 写Windows Service服务程序
    关于Python 获取windows信息收集
    Pyqt 获取windows系统中已安装软件列表
    Python 打开目录与指定文件
    【转载】Pyqt 编写的俄罗斯方块
    Python win32api提取exe图标icon
    Pyqt QListWidget之缩略图列表
    Pyqt 时时CPU使用情况
    Python 的三目运算
    Chrome Crx 插件下载
  • 原文地址:https://www.cnblogs.com/rainbow8590/p/7171348.html
Copyright © 2011-2022 走看看