js人民币数字转大写

放肆的年华 提交于 2019-12-01 01:41:52
function numToCny(num) {
    var capUnit = ['万', '亿', '万', '圆', ''];
    var capDigit = {
        2 : ['角', '分', ''],
        4 : ['仟', '佰', '拾', '']
    };
    var capNum = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'];
    if (((num.toString()).indexOf('.') > 16) || (isNaN(num))) return '';
    num = (Math.round(num * 100) / 100).toString();
    num = ((Math.pow(10, 19 - num.length)).toString()).substring(1) + num;
    var i, ret, j, nodeNum, k, subret, len, subChr, CurChr = [];
    for (i = 0, ret = ''; i < 5; i++, j = i * 4 + Math.floor(i / 4)) {
        nodeNum = num.substring(j, j + 4);
        for (k = 0, subret = '', len = nodeNum.length; ((k < len) && (parseInt(nodeNum.substring(k)) != 0)); k++) {
            CurChr[k % 2] = capNum[nodeNum.charAt(k)] + ((nodeNum.charAt(k) == 0) ? '': capDigit[len][k]);
            if (! ((CurChr[0] == CurChr[1]) && (CurChr[0] == capNum[0]))) if (! ((CurChr[k % 2] == capNum[0]) && (subret == '') && (ret == ''))) subret += CurChr[k % 2];
        }
        subChr = subret + ((subret == '') ? '': capUnit[i]);
        if (! ((subChr == capNum[0]) && (ret == ''))) ret += subChr;
    }
    ret = (ret == '') ? capNum[0] + capUnit[3] : ret;
    return ret;
}

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!