Skip to content

Instantly share code, notes, and snippets.

@jikeytang
Last active August 29, 2015 14:02
Show Gist options
  • Save jikeytang/853e02a7546b86af6fe2 to your computer and use it in GitHub Desktop.
Save jikeytang/853e02a7546b86af6fe2 to your computer and use it in GitHub Desktop.
[ Javascript ] - 20140625-题目1
将任意数字的金额,转换成汉字大写的形式。
如:1234.50 -> 壹仟贰佰叁拾肆圆伍角。
壹、贰、叁、肆、伍、陆、柒、捌、玖、拾、佰、仟、万、亿、元、角、分、零、整。
PS:
1. 回复时注意加上下面这句话,才会有语法高亮或格式缩进。
```javascript
// you code
```
2. 粘贴代码时请使用shift+tab,缩进前面的空白。
@tanxingxing
Copy link

    function fuckNum(num){
        var num=parseFloat(num);// 2.00之类的
        var arr=['零','壹','贰','叁','肆','伍','陆','柒','捌','玖'];
        var arr1=['圆','拾','佰','仟','万','拾','佰','仟','亿','拾','佰','仟','万','拾','佰','仟','万'];
        var arr2=['角','分','厘','毫'];
        //var arr2=[];
        var num=num+'';
        var index=num.split('.');
        var left=index[0];
        var right=index[1];
        var rightStr='',leftStr='';
        //alert(NaN==NaN);
        if(!right){
            rightStr='整';
        }else{
            var i= 0,len=right.length>=4?4:right.length;
            for(;i<len;i++){
               // alert(arr2[i]);
                if(right[i]=='0'){
                    rightStr+=arr[right[i]];
                }else{
                    rightStr+=arr[right[i]]+arr2[i];
                }
            }
        }
        rightStr=rightStr.replace(/(){2,}/,'零');

        i= 0;
        len=left.length;
        for(;i<len;i++){
            if(left[i]==0){
                leftStr+=arr[left[i]];
            }else{
                //alert()
                leftStr+=arr[left[i]]+arr1[len-i-1];
            }
        }
        leftStr=leftStr.replace(/(){2,}/,'零');
        leftStr=leftStr.replace(/()+$/,'圆');
        alert(leftStr+rightStr);
    }

    fuckNum(214578940040.0074);
    fuckNum(123459);

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment