[AS3]as3关于数字方面的取整,随机数,小数点精度,度数等介绍
使用Math.round()对一个数取整,四舍五入
- Math.round()
- trace(Math.round(204.499)); //输出:204
- trace(Math.round(401.5)); //输出:402
使用Math.floor()对一个数向下取整,就是只要整数部分而不理会小数分
- trace(Math.floor(204.99)); //输出:204
使用Math.ceil()对一个数向上取整,只要小数部分不为零,整数部分就加1
- trace(Math.ceil(401.01)); //输出:402
产生一个随机数
使用Math.random()产生一个伪随机数n,其中 0 <= n < 1
把数字取至最近的小数点位,即指定精确度
1. 决定你要取的数字的小数点位数:例如,如果你想把90.337取成90.34,就表示你要取到两位小数点位,也就是说你想取至最近的0.01;
2. 让输入值除以步骤1所选的数字(此例为0.01);
3. 使用Math.round()把步骤2所计得的值取成最近的整数;
4. 把步骤3所得的结果乘以步骤2用于除法的那个值.
例如,要把90.337取成两个小数点位数,可以使用:
- trace(Math.round(90.337/0.01)*0.01); //输出:90.34
把数字取成一个整数的最接近倍数值
例1,这样会把92.5取成5的最近倍数值:
trace(Math.round(92.5/5)*5); //输出:95
例2,这样会把92.5取成10的最近倍数值:
trace(Math.round(92.5/10)*10); //输出:90
在指定数值范围内获得随机数
- //可取范围:[min, max]
- private function randRange(min:Number, max:Number):Number {
- var randomNum:Number = Math.floor(Math.random() * (max - min + 1)) + min;
- return randomNum;
- }
应用例子:
模拟投银币,即希望得到随机布尔值(true 或 false): randRange(0, 1);
模拟投骰子,即希望得到随机六个值: randRange(1, 6);
为避免被缓存而需要产生一个独一无二的数字追加在URL尾端,通常最佳方法是取得当前毫秒数.
弧度(radian)与度数(degree)之间的转换
从弧度转为度数: degrees = radians * 180 / Math.PI
从度数转为弧度: radians = degrees * Math.PI / 180
计算两点之间的距离
勾股定理: c2 = a2 + b2
假设有两个影片剪辑mc1和mc2,则它们两点间的距离c为:
var c:Number = Math.sqrt(Math.pow(mc1.x - mc2.x, 2) + Math.pow(mc1.y - mc2.y, 2));
热门文章推荐
- [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示例