JavaScript 金额格式化

来自ling
跳转至: 导航搜索
function outputmoney(number) {
        number = number.replace(/\,/g, "");
        if (isNaN(number) || number == "")return "";
        number = Math.round(number * 100) / 100;
        if (number < 0)
            return '-' + outputdollars(Math.floor(Math.abs(number) - 0) + '') + outputcents(Math.abs(number) - 0);
        else
            return outputdollars(Math.floor(number - 0) + '') + outputcents(number - 0);
    }

    //格式化金额
    function outputdollars(number) {
        if (number.length <= 3)
            return (number == '' ? '0' : number);
        else {
            var mod = number.length % 3;
            var output = (mod == 0 ? '' : (number.substring(0, mod)));
            for (var i = 0; i < Math.floor(number.length / 3); i++) {
                if ((mod == 0) && (i == 0))
                    output += number.substring(mod + 3 * i, mod + 3 * i + 3);
                else
                    output += ',' + number.substring(mod + 3 * i, mod + 3 * i + 3);
            }
            return (output);
        }
    }

    function outputcents(amount) {
        amount = Math.round(((amount) - Math.floor(amount)) * 100);
        return (amount < 10 ? '.0' + amount : '.' + amount);
    }

    function currencyRenderer(params) {
        if (params.value === null || params.value === undefined) {
            return null;
        } else if (isNaN(params.value)) {
            // return 'NaN';
            return params.value;
        } else {
            // if we are doing 'count', then we do not show pound sign
            if (params.node.group && params.column.aggFunc === 'count') {
                return params.value;
            } else {
                return outputmoney(params.value.toString());//'¥' +
            }
        }
    };
    function adjRenderer(params) {
        if (params.value === null || params.value === undefined) {
            return null;
        } else if (isNaN(params.value)) {
            // return 'NaN';
            return params.value;
        } else {
            // if we are doing 'count', then we do not show pound sign
            if (params.node.group && params.column.aggFunc === 'count') {
                return params.value;
            } else {
                return outputmoney(params.value.toString());//'¥' +
            }
        }
    };