js鼠标悬停展示对应的数字金额(保留两位小数)的中文名称

该文章提供了一个JavaScript函数,用于格式化并悬浮展示中文金额,包括添加千位分隔符和处理亿、万单位。函数`formatNumber`接收一个数字,确保其格式正确,并结合`addChineseUnit`函数将大额数字转换为中文表示,适用于如easyui表格中的field字段显示,可以进行求和操作并用formatter进行格式化。
摘要由CSDN通过智能技术生成

悬浮展示中文金额效果
在这里插入图片描述
js代码(格式化的函数)

   function formatNumber(num) {
        if (!/^(\+|-)?(\d+)(\.\d+)?$/.test(num)) {
            return num;
        }
        var a = RegExp.$1, b = RegExp.$2, c = RegExp.$3;
        var re = new RegExp("(\\d)(\\d{3})(,|$)");
        while (re.test(b)) b = b.replace(re, "$1,$2$3");
        var value = addChineseUnit(num, 5);
        var content = '';
        if (value != undefined) {
            //style="text-decoration: none"属性让超链接a下面不再显示下划线
            content = '<div href="#" title="' + value + '" class="easyui-tooltip easyui-linkbutton" style="text-decoration: none">' + (a + "" + b + "" + c) + '</div>';
        }
        return content;
    }
    /*添加中文金额显示*/
    function addChineseUnit(number, decimalDigit) {
        var addWan = function (integer, number, mutiple, decimalDigit) {
            var digit = getDigit(integer);
            if (digit > 3) {
                var remainder = digit % 8;
                if (remainder >= 5) {   // ‘十万’、‘百万’、‘千万’显示为‘万’
                    remainder = 4;
                }
                return Math.round(number / Math.pow(10, remainder + mutiple - decimalDigit)) / Math.pow(10, decimalDigit) + '万';
            } else {
                return Math.round(number / Math.pow(10, mutiple - decimalDigit)) / Math.pow(10, decimalDigit);
            }
        };
        var getDigit = function (integer) {
            var digit = -1;
            while (integer >= 1) {
                digit++;
                integer = integer / 10;
            }
            return digit;
        };
        return function (number, decimalDigit) {
            decimalDigit = decimalDigit == null ? 2 : decimalDigit;
            var integer = Math.floor(number);
            var digit = getDigit(integer);
            var unit = [];
            if (digit > 3) {
                var multiple = Math.floor(digit / 8);
                if (multiple >= 1) {
                    var tmp = Math.round(integer / Math.pow(10, 8 * multiple));
                    unit.push(addWan(tmp, number, 8 * multiple, decimalDigit));
                    for (var i = 0; i < multiple; i++) {
                        unit.push('亿');
                    }
                    return unit.join('');
                } else {
                    return addWan(integer, number, 0, decimalDigit);
                }
            } else {
                return number;
            }
        }(number, decimalDigit);
    }

easyui的表格field字段写法

{
                      field: 'budgetAvailableAmount',
                       op: 'sum',
                       title: "可用金额",
                       width: '15%',
                       formatter: function (value) {
                           return formatNumber(value);
                       }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值