[AS3]as3下Number类型精度问题
在获取数据的时候得到是个奇诡的结果,谷歌后的说明 AS3的Number与JAVA或C++的double类似,采用二进制分数而非十进制分数保存浮点部分,因此会导致不够精确
今天在开发的时候 遇到了一个问题,在获取数据的时候得到是个奇诡的结果,谷歌后的说明 AS3的Number与JAVA或C++的double类似,采用二进制分数而非十进制分数保存浮点部分,因此会导致不够精确。这是语言的设计思路所致。当然,从另一个思路看,它也是个BUG。 或许AS3引入double和float类型后会解决这个问题吧…… 10.799999999999999 10.8
- package
- {
- import flash.display.Sprite;
- public class NumberTest extends Sprite
- {
- public function NumberTest()
- {
- var $bLevel:int = 24 ;
- var $volume:Number = ($bLevel)/10* int( $bLevel/10 + 1 ) * 15/10;
- $volume = 5.00000000000004
- var rate:Number = Math.round( $volume * 10 )/10 ;
- trace( $volume ) ;
- trace( rate ) ;
- // trace( 0.1 + 0.1 +0.1 +0.1 +0.1 +0.1 +0.1 +0.1 +0.1 +0.1 ) ;
- // Math.round( ) ;
- }
- }
- }
热门文章推荐
- [HLS]做自己的m3u8点播系统使用HTTP Live Streaming(HLS技术)
- [FMS]FMS流媒体服务器配置与使用相关的介绍
- [AS3]什么是M3U8,与HTML5的区别是什么
- AS2.0 让flash自适应全屏,并且不自动缩放
- [AS3]as3.0的sound类常用技巧整理
- [AS3]as3与ByteArray详解、ByteArray介绍、ByteArray用法
- 关于RTMP,RTMPT,RTMPS,RTMPE,RTMPTE协议的介绍
- [JS]分享浏览器弹出窗口不被拦截JS示例
请稍候...