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;
    }
  • 相关阅读:
    Scrapy 概览笔记
    Python 依赖版本控制 (requirements.txt 文件生成和使用)
    Python 虚拟空间的使用
    macOS 所有版本 JDK 安装指南 (with Homebrew)
    鉴权那些事
    Java 位运算符和 int 类型的实现
    ASP.NET Core 入门教程 5、ASP.NET Core MVC 视图传值入门
    如何做好一次知识或技术分享
    ASP.NET Core 入门教程 4、ASP.NET Core MVC控制器入门
    ASP.NET Core 入门教程 3、ASP.NET Core MVC路由入门
  • 原文地址:https://www.cnblogs.com/rainbow8590/p/7171348.html
Copyright © 2011-2022 走看看