js中如何将数据获得2位小数以及对数据进行千分位划分

js中toFixed(n) 方法可把 数字四舍五入为指定小数位数n的数字,注意:这个方法只能对数据类型为Number的数据起作用,包括float,int等。例如:

 
123.12345.toFixed(2);
 
"123.12"          
 
对数据进行千分位划分采用这样的一个语句就行了:.replace(/d{1,3}(?=(d{3})+(.d*)?$)/g, '$&,')。注意:replace()方法只能对字符串类型起作用,而我们队数据进行千分位划分的时候通常是对数值进行划分,因此在对数据进行千分位划分之前,还需要对数据进行转化,转化为String类型。或者使用123456.1234.toFixed(2)+""的方法将数据转化为String类型。例如:
123456.1234.toFixed(2).toString().replace(/d{1,3}(?=(d{3})+(.d*)?$)/g, '$&,');
 
"123,456.12"
(123456.1234.toFixed(2)+"").replace(/d{1,3}(?=(d{3})+(.d*)?$)/g, '$&,');
 
"123,456.12"
这2个方法虽然很简单,但是在数据处理方面用的比较多,所以还是比较实用的。
以上是对含有2位小数的float进行千分位划分,有时候可能float值不止2位小数,那么以上的正则表达式就不适用了,可以用以下方法对超过2位小数的值进行千分位划分。
var getDataFormat=function(dataValue){
            var nDataValue = dataValue;
            if(!isNaN(dataValue)){
                if (/^(+|-)?(d+)(.d+)?$/.test(dataValue)) {
                    var a = RegExp.$1, b = RegExp.$2, c = RegExp.$3;
                    var re = new RegExp();
                    re.compile("(\d)(\d{3})(,|$)");
                    while (re.test(b)) {
                        b = b.replace(re, "$1,$2$3");
                }
                  }
                nDataValue=(a + "" + b + "" + c);
            }
            
            return nDataValue;
        };
原文地址:https://www.cnblogs.com/alisayuan/p/4781261.html