佐杰 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方法返回一个以定点表示法表示的数字的字符串形式