现在的位置: 首页 > web前端 > 正文

JS怎样做四舍五入

2020年07月03日 web前端 ⁄ 共 1122字 ⁄ 字号 评论关闭

  小编给大家整理的是关于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四舍五入做网页开发的时候,经常需要将一些数据进行取整操作,比如:向上取整,向下取整,四舍五入取整。

抱歉!评论已关闭.