• js jquery版本号 金额千分之一转换功能(非规范,高效率)


    没想到js将没有 金额千分之一格处理器类型(例子:1,234.01 这种格公式)。互联网搜索圈,我们使用的是常规方式。常规效率受宠若惊啊。和资源密集型,速度慢(虽然处理起来会很直观)。

    因此专门写一个纯粹的数值符串个 金额千分位处理函数,并封装成jQuery函数包,处理时效率非常高,可高频率的使用。直接上代码。

    还有min压缩版本号可点击连接下载。

    假设你不是jQuery环境,直接把源代码拿出来,又一次封装到自己的函数中可以就能用。


    源代码以及min包下载地址:jQuery.formatMoney.rar


    /**
     * 金额按千位逗号切割
     * @character_set UTF-8
     * @author Jerry.li(hzjerry@gmail.com)
     * @version 1.2014.08.24.2143
     *  Example
     * 	<code>
     *      alert($.formatMoney(1234.345, 2)); //=>1,234.35
     *      alert($.formatMoney(-1234.345, 2)); //=>-1,234.35
     *      alert($.unformatMoney(1,234.345)); //=>1234.35
     *      alert($.unformatMoney(-1,234.345)); //=>-1234.35
     * 	</code>
     */
    ;(function($)
    {
        $.extend({
            /**
             * 数字千分位格式化
             * @public
             * @param mixed mVal 数值
             * @param int iAccuracy 小数位精度(默觉得2)
             * @return string
             */
            formatMoney:function(mVal, iAccuracy){
                var fTmp = 0.00;//暂时变量
                var iFra = 0;//小数部分
                var iInt = 0;//整数部分
                var aBuf = new Array(); //输出缓存
                var bPositive = true; //保存正负值标记(true:正数)
                /**
                 * 输出定长字符串,不够补0
                 * <li>闭包函数</li>
                 * @param int iVal 值
                 * @param int iLen 输出的长度
                 */
                function funZero(iVal, iLen){
                    var sTmp = iVal.toString();
                    var sBuf = new Array();
                    for(var i=0,iLoop=iLen-sTmp.length; i<iLoop; i++)
                        sBuf.push('0');
                    sBuf.push(sTmp);
                    return sBuf.join('');
                };
    
                if (typeof(iAccuracy) === 'undefined')
                    iAccuracy = 2;
                bPositive = (mVal >= 0);//取出正负号
                fTmp = (isNaN(fTmp = parseFloat(mVal))) ? 0 : Math.abs(fTmp);//强制转换为绝对值数浮点
                //全部内容用正数规则处理
                iInt = parseInt(fTmp); //分离整数部分
                iFra = parseInt((fTmp - iInt) * Math.pow(10,iAccuracy) + 0.5); //分离小数部分(四舍五入)
    
                do{
                    aBuf.unshift(funZero(iInt % 1000, 3));
                }while((iInt = parseInt(iInt/1000)));
                aBuf[0] = parseInt(aBuf[0]).toString();//最高段区去掉前导0
                return ((bPositive)?'':'-') + aBuf.join(',') +'.'+ ((0 === iFra)?

    '00':funZero(iFra, iAccuracy)); }, /** * 将千分位格式的数字字符串转换为浮点数 * @public * @param string sVal 数值字符串 * @return float */ unformatMoney:function(sVal){ var fTmp = parseFloat(sVal.replace(/,/g, '')); return (isNaN(fTmp) ?

    0 : fTmp); }, }); })(jQuery);



    版权声明:本文博主原创文章,博客,未经同意不得转载。

  • 相关阅读:
    triplet loss 在深度学习中主要应用在什么地方?有什么明显的优势?
    一个评测指标就是MAP(Mean Average Precision)平均精度均值。
    机器学习术语中英对照表
    logistic softmax
    mysql导出导入sql文件方法(linux)
    mysql分区表
    matplotlib安装错误依赖问题解决
    linux命令集合
    linux下安装或升级GCC4.8.2,以支持C++11标准[转]
    linux 如何显示一个文件的某几行(中间几行)
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/4881385.html
Copyright © 2020-2023  润新知