zoukankan      html  css  js  c++  java
  • JS将数字转换为中文

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <title>JS将数字转换为中文</title>
    </head>
    <body>
    <script>
        // 定义转换函数
        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[i] = temp[i];
            }
            return value;
        }
    
        // 调用
        var a = '12345678';
        var b = transform(a);
        console.log(b);
    
    </script>
    </body>
    </html>

    运行后的结果:

    壹仟贰佰叁拾肆万伍仟陆佰柒拾捌元
  • 相关阅读:
    document.body.clientHeight 和 document.documentElement.clientHeight 的区别
    Javascript操作div及其内含对象示例
    面向对象分析设计的经验原则
    翻页控件示例代码
    C#的6种常用集合类示例
    UML基础知识
    重温OSI和TCP/IP网络分层
    设计模式总结
    活用设计模式
    GridView当数据源为空时仍显示表头
  • 原文地址:https://www.cnblogs.com/kynewu/p/9166428.html
Copyright © 2011-2022 走看看