解决JavaScript浮点溢出的两种途径

本文向大家简单介绍一下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方法返回一个以定点表示法表示的数字的字符串形式

相关推荐