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

开发 前端
在JS中你可能会遇到浮点溢出问题,那如何解决这一问题呢,这里通过实例向大家描述一下两种解决方案,希望对你的学习有所帮助。

本文向大家简单介绍一下JavaScript浮点溢出的两种解决方案,首先我们先运行一下一段代码,看有什么现象产生,再说一下如何解决此问题。

JavaScript浮点溢出的两种解决方案

请运行以下代码,发现了什么。这就是JavaScript溢出问题。

  1. <scripttypescripttype="text/javascript"> 
  2. vara=38.8;  
  3. varb=6.8;  
  4. alert(a-b);  
  5. vara=134.22;  
  6. varb=6;  
  7. alert(a*b);  
  8. </script> 
  9.  

 对于JavaScript溢出问题常见的有两种解决方案:

***个调用一个处理函数

  1. functionoverflow(a,h,b)  
  2. {if(a.toString().indexOf(".")  
  3. <0&&b.toString().indexOf(".")<0){returneval(a+h+b);  
  4. }varalen=a.toString().split(".");if(alen.length==1){   
  5. alen=0;}else{alenalen=alen[1].length;  
  6. }varblen=b.toString().split(".");if(blen.length==1){   
  7. blen=0;}else{   
  8. blenblen=blen[1].length;}if(blen>alen)alen=blen;blen="1";  
  9. for(;alen>0;alen--){blenblen=blen+"0";  
  10. }switch(h){case"+":return(a*blen+b*blen)/blen;  
  11. break;case"-":return(a*blen-b*blen)/blen;  
  12. break;case"*":return((a*blen)*(b*blen))/(blen*blen);  
  13. break;default:return0;}}  
  14.  

 第二个使用toFixed方法返回一个以定点表示法表示的数字的字符串形式

再运行以下代码看看

  1. <scripttypescripttype="text/javascript"> 
  2. vara=38.8;  
  3. varb=6.8;  
  4. alert(overflow(a,"-",b));  
  5. vara=134.22;  
  6. varb=6;  
  7. alert((a*b).toFixed(2));  
  8. </script> 

【编辑推荐】

  1. Javascript解决浏览器兼容问题12个技巧
  2. 技术分享 Javascript如何获取textarea中光标位置
  3. JavaScript弹出层和背景变暗代码实现
  4. 技术分享 如何识别控制DHTML和JavaScript中的页面元素
  5. 深入学习JavaScript中Function对象语法 

 

责任编辑:佚名 来源: robinhong.cn
相关推荐

2010-09-30 14:35:36

JS浮点溢出

2010-09-15 17:19:23

APC

2010-06-07 17:41:42

Sendmail 配置

2011-06-23 09:07:16

2010-11-19 11:57:15

Oracle密码丢失

2010-03-15 14:01:26

JavaScript

2010-09-07 09:18:16

DIV弹出窗口

2009-07-27 13:38:10

服务器变慢 Ping

2010-07-17 00:24:40

2010-09-28 15:12:27

Javascript

2009-09-14 19:25:09

Ruby form

2010-03-26 18:41:51

Nginx 502错误

2009-03-04 10:38:36

Troubleshoo桌面虚拟化Xendesktop

2010-10-11 10:31:51

MySQL分区

2013-05-27 14:31:34

Hadoop 2.0

2010-08-30 10:03:13

2021-05-27 10:57:01

TCP定时器网络协议

2010-03-11 14:34:47

Python环境

2011-03-03 10:26:04

Pureftpd

2010-08-06 09:38:11

Flex读取XML
点赞
收藏

51CTO技术栈公众号