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,缩进前面的空白。
@jikeytang
Copy link
Author

function to(n){
    var a = ['亿','万','仟','佰','拾','元'],
        b = ['元','拾','佰','仟','万','亿'],
        s = ['零','壹','贰','叁','肆','伍','陆','柒','捌','玖'];

    var i=(n+'').length-1;
    return (n+'').replace(/\d/g, function(m, k){
        return s[m]+b[i--];
    });
}
console.log(to(123125));

@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