·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

[AS3]as3下Number类型精度问题

时间:2013-08-26 17:08cuplayer.com
在获取数据的时候得到是个奇诡的结果,谷歌后的说明 AS3的Number与JAVA或C++的double类似,采用二进制分数而非十进制分数保存浮点部分,因此会导致不够精确

今天在开发的时候 遇到了一个问题,在获取数据的时候得到是个奇诡的结果,谷歌后的说明 AS3的Number与JAVA或C++的double类似,采用二进制分数而非十进制分数保存浮点部分,因此会导致不够精确。这是语言的设计思路所致。当然,从另一个思路看,它也是个BUG。 或许AS3引入double和float类型后会解决这个问题吧…… 10.799999999999999 10.8

  1. package 
  2. { 
  3.     import flash.display.Sprite; 
  4.   
  5.     public class NumberTest extends Sprite 
  6.     { 
  7.         public function NumberTest() 
  8.         { 
  9.             var $bLevel:int             =   24 ; 
  10.             var $volume:Number = ($bLevel)/10* int( $bLevel/10 + 1 ) * 15/10; 
  11.   
  12.             $volume             =   5.00000000000004 
  13.   
  14.             var rate:Number         =   Math.round( $volume * 10 )/10 ; 
  15.             trace( $volume ) ; 
  16.             trace( rate ) ; 
  17. //          trace( 0.1 + 0.1 +0.1 +0.1 +0.1 +0.1 +0.1 +0.1 +0.1 +0.1 ) ; 
  18.   
  19. //          Math.round( ) ; 
  20.   
  21.         } 
  22.     } 
  23. } 

 

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器