xiaochuachua 2014-02-26
一、问题的产生:
自己在编码时,在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;
}