佐杰 2010-10-09
本文向大家简单介绍一下JavaScript浮点溢出的两种解决方案,首先我们先运行一下一段代码,看有什么现象产生,再说一下如何解决此问题。
JavaScript浮点溢出的两种解决方案
请运行以下代码,发现了什么。这就是JavaScript溢出问题。
<scripttypescripttype="text/javascript"> vara=38.8; varb=6.8; alert(a-b); vara=134.22; varb=6; alert(a*b); </script>
对于JavaScript溢出问题常见的有两种解决方案:
第一个调用一个处理函数
functionoverflow(a,h,b)
{if(a.toString().indexOf(".")
<0&&b.toString().indexOf(".")<0){returneval(a+h+b);
}varalen=a.toString().split(".");if(alen.length==1){
alen=0;}else{alenalen=alen[1].length;
}varblen=b.toString().split(".");if(blen.length==1){
blen=0;}else{
blenblen=blen[1].length;}if(blen>alen)alen=blen;blen="1";
for(;alen>0;alen--){blenblen=blen+"0";
}switch(h){case"+":return(a*blen+b*blen)/blen;
break;case"-":return(a*blen-b*blen)/blen;
break;case"*":return((a*blen)*(b*blen))/(blen*blen);
break;default:return0;}}
第二个使用toFixed方法返回一个以定点表示法表示的数字的字符串形式