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;
};