`

JS -格式化数值

 
阅读更多
<script>
/**
 * 格式化数字
 * @param number
 * @param pattern
 * @return
 */
function formatNumber(number,pattern){
    var str            = number.toString();
    var strInt;
    var strFloat;
    var formatInt;
    var formatFloat;
    if(/\./g.test(pattern)){
        formatInt        = pattern.split('.')[0];
        formatFloat        = pattern.split('.')[1];
    }else{
        formatInt        = pattern;
        formatFloat        = null;
    }

    if(/\./g.test(str)){
        if(formatFloat!=null){
            var tempFloat    = Math.round(parseFloat('0.'+str.split('.')[1])*Math.pow(10,formatFloat.length))/Math.pow(10,formatFloat.length);
            strInt        = (Math.floor(number)+Math.floor(tempFloat)).toString();                
            strFloat    = /\./g.test(tempFloat.toString())?tempFloat.toString().split('.')[1]:'0';            
        }else{
            strInt        = Math.round(number).toString();
            strFloat    = '0';
        }
    }else{
        strInt        = str;
        strFloat    = '0';
    }
    if(formatInt!=null){
        var outputInt    = '';
        var zero        = formatInt.match(/0*$/)[0].length;
        var comma        = null;
        if(/,/g.test(formatInt)){
            comma        = formatInt.match(/,[^,]*/)[0].length-1;
        }
        var newReg        = new RegExp('(\\d{'+comma+'})','g');

        if(strInt.length<zero){
            outputInt        = new Array(zero+1).join('0')+strInt;
            outputInt        = outputInt.substr(outputInt.length-zero,zero)
        }else{
            outputInt        = strInt;
        }

        var 
        outputInt            = outputInt.substr(0,outputInt.length%comma)+outputInt.substring(outputInt.length%comma).replace(newReg,(comma!=null?',':'')+'$1')
        outputInt            = outputInt.replace(/^,/,'');

        strInt    = outputInt;
    }

    if(formatFloat!=null){
        var outputFloat    = '';
        var zero        = formatFloat.match(/^0*/)[0].length;

        if(strFloat.length<zero){
            outputFloat        = strFloat+new Array(zero+1).join('0');
            //outputFloat        = outputFloat.substring(0,formatFloat.length);
            var outputFloat1    = outputFloat.substring(0,zero);
            var outputFloat2    = outputFloat.substring(zero,formatFloat.length);
            outputFloat        = outputFloat1+outputFloat2.replace(/0*$/,'');
        }else{
            outputFloat        = strFloat.substring(0,formatFloat.length);
        }

        strFloat    = outputFloat;
    }else{
        if(pattern!='' || (pattern=='' && strFloat=='0')){
            strFloat    = '';
        }
    }

    return strInt+(strFloat==''?'':'.'+strFloat);
}

 alert(formatNumber(2000,'######,###'));
</script>
分享到:
评论

相关推荐

    JavaScript 格式化数字、金额、千分位、保留几位小数、舍入舍去

    * 将数值四舍五入(保留2位小数)后格式化成金额形式 * * @param num 数值(Number或者String) * @return 金额格式的字符串,如'1,234,567.45' * @type String */ function formatCurrency(num) { num = num....

    JavaScript数值千分位格式化的两种简单实现方法

    下面小编就为大家带来一篇JavaScript数值千分位格式化的两种简单实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    前端千分位格式化方法(js格式)

    前端千分位格式化的js方法,在数值的小数点前每隔三位添加一个逗号”,

    Numeral-js-master.zip_numeral.js

    Numeral.js是一个用来对数值进行操作和格式化的JS库。

    js关于精确计算和数值格式化以及直接引js文件

    本文为大家介绍下关于精确计算和数值格式化以及直接引js文件,大家可以学习下

    js 实现数值的千分位及保存小数方法(推荐)

    * 将数值四舍五入后格式化. * * @param num 数值(Number或者String) * @param cent 要保留的小数位(Number) * @param isThousand 是否需要千分位 0:不需要,1:需要(数值类型); * @return 格式的字符串,如'1,234...

    js 数值项目的格式化函数代码

    数值项目的格式化函数代码,需要的朋友可以参考下。

    layui使用templet格式化表格数据的方法

    /*———————格式化时间开始————————–*/ //对Date的扩展,将 Date 转化为指定格式的String //月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符, //年(y)可以用 1-4 个占位符,毫秒...

    js格式化金额可选是否带千分位以及保留精度

    js格式化金额,可选是否带千分位,可选保留精度,也是网上搜到的,但是使用没问题 代码如下: /* 将数值四舍五入后格式化. @param num 数值(Number或者String) @param cent 要保留的小数位(Number) @param isThousand ...

    js处理货币格式插件currency.js

    currency.js是一款 js处理货币格式格式插件。currency.js提供非常灵活的api来帮助您解决javascript中的浮点数问题,并提供格式化货币数值功能,使用起来非常方便。

    JS输入框限制数值输入插件

    JS插件,用于INPUT框限制数值输入,支持整数,浮点数,负数,和金额格式化。

    vue-numeric:输入字段组件,以显示基于Vue.js的格式化货币值

    数值 输入字段组件,以显示基于的格式化货币值。适用于Vue 2 。安装通过CDN安装&lt; script src =" https://unpkg.com/accounting-js " &gt; &lt;/ script &gt;&lt; script src =" https://unpkg.com/vue " &gt; &lt...

    js验证表单 js验证表单

    6: js email验证 、js 判断email 、信箱/邮箱格式验证 7:js字符过滤,屏蔽关键字 8:js密码验证、判断密码 2.1: js 不为空、为空或不是对象 、判断为空 、判断不为空 2.2:比较两个表单项的值是否相同 2.3:表单只能为...

    html页面展示json数据并格式化的方法

    json数据在html页面展示并格式化 一、展现效果图 描述信息: key值全部采用红色标出,表示重要参数; value值采用不同颜色标出,数值类型的采用橘黄色,字符串采用绿色,布尔采用蓝色。。。 二、源代码展示 &lt;...

    JS实现数字格式千分位相互转换方法

    下面小编就为大家带来一篇JS实现数字格式千分位相互转换方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    Asp 日期格式化问题

    对于access数据库的日期时间类型字段存储的日期,直接...要被格式化的日期表达式。 NamedFormat 可选项。指示所使用的日期/时间格式的数值,如果省略,则使用 vbGeneralDate。 设置 NamedFormat 参数可以有以下值:

    精通Javascript系列之数值计算

    ——————— js 中对数值的格式化问题 对数字进行格式化输出,是非常有意义的一件事情,例如许多时候,我们希望一个数字能够输出为指定格式的字符串,拿26.9878来说,我们可能会希望它能保留两位小数来说出,即...

Global site tag (gtag.js) - Google Analytics