javascript四舍五入的问题

一、问题的产生:

自己在编码时,在javascript中遇到了3.21*3=9.629999999999999的现象二、百度一下

得到如下信息:

用Javascript取float型小数点后两位,例22.127456取成22.13,如何做?

1.最笨的办法.......[我就怎么干的.........]

functionget()

{

vars=22.127456+"";

varstr=s.substring(0,s.indexOf(".")+3);

alert(str);

}

2.正则表达式效果不错

<scripttype="text/javascript">

onload=function(){

vara="23.456322";

varaNew;

varre=/([0-9]+\.[0-9]{2})[0-9]*/;

aNew=a.replace(re,"$1");

alert(aNew);

}

</script>

3.他就比较聪明了.....

<script>

varnum=22.127456;

alert(Math.round(num*100)/100);

</script>

4.会用新鲜东西的朋友.......但是需要IE5.5+才支持。

<script>

varnum=22.127456;

alert(num.toFixed(2));

</script>

三、总结后,自己写了个javascript多位数四舍五入的通用方法

//num表示要四舍五入的数,v表示要保留的小数位数。

functiondecimal(num,v)

{

varvv=Math.pow(10,v);

returnMath.round(num*vv)/vv;

}

相关推荐