小编给大家整理的是关于JS用最简单的方法实现四舍五入的实例内容,需要的朋友们学习下。
JS四舍五入方法一:
在js中四舍五入的函数tofixed(n),n为要保留的小数位数。
n为0~20,当n超过20的时候,js会出错。
vard=10.005;
varf=d.tofixed(2);
alert(f);
bug:
如果小数点前和要截取的前一位都是0时,不会按常理截取。
varh=0.07
h.tofixed(1)的值为0.0
如果要修改这个缺陷,可以把js中的number类型的tofixed方法重写。
例如:
复制代码代码示例:
number.prototype.tofixed=function(d)
{
vars=this+"";if(!d)d=0;
if(s.indexof(".")==-1)s+=".";s+=newarray(d+1).join("0");
if(newregexp("^(-|\\+)?(\\d+(\\.\\d{0,"+(d+1)+"})?)\\d*$").test(s))
{
vars="0"+regexp.$2,pm=regexp.$1,a=regexp.$3.length,b=true;
if(a==d+2){a=s.match(/\d/g);if(parseint(a[a.length-1])>4)
{
for(vari=a.length-2;i>=0;i--){a[i]=parseint(a[i])+1;
if(a[i]==10){a[i]=0;b=i!=1;}elsebreak;}
}
s=a.join("").replace(newregexp("(\\d+)(\\d{"+d+"})\\d$"),"$1.$2");
}if(b)s=s.substr(1);return(pm+s).replace(/\.$/,"");}returnthis+"";
};
这样就可以修复number类型的tofixed方法。
JS四舍五入方法二:
之前一直在用这个js自带的tofixed函数来进行四舍五入的操作,可是,在实际使用过程中却遇到了问题。
比如
复制代码代码示例:
varmoney=0.00542;//0.006;
alert(number(money).tofixed(2));
//0.00
以上结果是错误的,方法通过巧妙的使用math.round函数,完全可以解决数值很小时的精度问题。
总之,JS四舍五入做网页开发的时候,经常需要将一些数据进行取整操作,比如:向上取整,向下取整,四舍五入取整。