zoukankan      html  css  js  c++  java
  • 将纯数字转成货币单位(万,亿,兆)

    1. 可二次开发成支持数字输出或者中文输出
    2. 默认从万开始,因为1000可以轻松辨别,当然也可以二次扩展
    3. 源代码
    var convertCurrency=function(){
    var cnNums = new Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9);
            var cnIntRadice = new Array('', '0', '00', '000');
            var cnIntUnits = new Array('', '万', '亿', '兆');
            var cnDecUnits = new Array('角', '分', '毫', '厘');
            var cnIntLast = '元';
            var maxNum = 999999999999999.9999;
            var integerNum;
            var decimalNum;
            var chineseStr = '';
            var parts;
            if (money == '') { return ''; }
            money = parseFloat(money);
            if (money >= maxNum) {
                //超出最大处理数字
                return '';
            }
            if (money == 0) {
                chineseStr = cnNums[0] + cnIntLast;
                return chineseStr;
            }
            money = money.toString();
            if (money.indexOf('.') == -1) {
                integerNum = money;
                decimalNum = '';
            } else {
                parts = money.split('.');
                integerNum = parts[0];
                decimalNum = parts[1].substr(0, 4);
            }
            if (parseInt(integerNum, 10) > 0) {
                var zeroCount = 0;
                var IntLen = integerNum.length;
                for (var i = 0; i < IntLen; i++) {
                    var n = integerNum.substr(i, 1);
                    var p = IntLen - i - 1;
                    var q = p / 4;
                    var m = p % 4;
                    if (n == '0') {
                        zeroCount++;
                    } else {
                        if (zeroCount > 0) {
                            chineseStr += cnNums[0];
                        }
                        //归零
                        zeroCount = 0;
                        chineseStr += cnNums[parseInt(n)] + cnIntRadice[m];
                    }
                    if (m == 0 && zeroCount < 4) {
                        chineseStr += cnIntUnits[q];
                    }
                }
                chineseStr += cnIntLast;
            }
            if (decimalNum != '') {
                var decLen = decimalNum.length;
                for (var i = 0; i < decLen; i++) {
                    var n = decimalNum.substr(i, 1);
                    if (n != '0') {
                        chineseStr += cnNums[Number(n)] + cnDecUnits[i];
                    }
                }
            }
            if (chineseStr == '') {
                chineseStr += cnNums[0] + cnIntLast;
            } else if (decimalNum == '') {
                chineseStr;
            }
            return chineseStr;
    }
    

      就是这样啦。

  • 相关阅读:
    BZOJ 3144 [Hnoi2013]切糕
    一场比赛:20170707
    BZOJ 2815 [ZJOI2012]灾难
    BZOJ 1088 [SCOI2005]扫雷Mine
    BZOJ 1052 [HAOI2007]覆盖问题
    BZOJ 3505 [Cqoi2014]数三角形
    BZOJ 2957 楼房重建
    BZOJ 2654 tree
    丁酉年六月十一ACM模拟赛
    BZOJ 3438 小M的作物 & BZOJ 1877 [SDOI2009]晨跑
  • 原文地址:https://www.cnblogs.com/webSong/p/7249334.html
Copyright © 2011-2022 走看看