AS3基础教程-第25课-Math类(下)
1、Math.abs(参数)
说明:计算并返回 参数 的绝对值。
参数必须是Number数字类型,返回值是Number数字类型(不含负数)
举例:
trace(Math.abs(-3.6))
输出的结果是3.6 也就是数字-3.6的绝对值
2、三个取整的方法
<1>Math.round(参数)
说明:对参数进行取整操作,按照四舍五入的方式取整
举例:
trace(Math.round(5.61323))//输出为6
trace(Math.round(5.15533))//输出为5
<2>Math.floor(参数)
说明:对参数进行取整操作,只保留整数部分,小数点后的所有数码一概舍去
举例:
trace(Math.floor(5.61323))//输出为5
trace(Math.floor(5.15533))//输出为5
<3>Math.ceil(参数)
说明:对参数进行取整操作,无视小数点后的所有数码,一律进一
举例:
trace(Math.ceil(5.61323))//输出为6
trace(Math.ceil(5.15533))//输出为6
3、Math.max(参数1,参数2,参数3,.......参数n)
说明:本方法的参数至少有两个,各参数之间当然是用逗号隔开了。
本方法的返回值是所有参数中的最大值
举例:
trace(Math.max(5,77,127,-999))//输出为127
4、Math.min(参数1,参数2,参数3,.......参数n)
说明:本方法的参数至少有两个,各参数之间当然是用逗号隔开了。
本方法的返回值是所有参数中的最小值
举例:
trace(Math.min(5,77,127,-999))//输出为-999
5、Math.pow(参数1,参数2)
说明:本方法的参数只能有两个
本方法的返回值是 参数1的参数2次方
举例:
trace(Math.pow(2,4))//输出为16,亦即2的4次方
6、Math.random()
说明:本方法没有参数!
本方法的返回值是一个随机数n
0 <= n < 1
前面章节已经介绍过,这里不再赘述
7、Math.sqrt(参数)
说明:本方法返回的是参数的算数平方根
参数必须是 非负数
举例:
trace(Math.sqrt(16))//输出为4
1、使用Math.random()产生的随机数,一定≥0 ,且<1 。
这样一来,返回的随机数一定是小数,而且,小数的位数特别多。
通常情况下,我们需要产生的是比1大的 整数。
此时,就需要配合 取整函数了
下面分别陈列一些比较常用的情况
2、目的:输出的随机数是 两位数n (10≤n≤99)
代码:
var min:uint=10
var max:uint=99
var result:uint=Math.round(Math.random()*(max-min))+min
trace(result)
请大家自行分析本例的公式,可以非常方便地定义随机数的取值范围。
为了验证自己编写的代码的正确性,我们可以使用for循环,让这段代码运行2000次:
var min:uint=10
var max:uint=99
var result:uint
for(var i:uint;i<2000;i++){
result=Math.round(Math.random()*(max-min))+min
if(result==100){
trace("出现了数字100")
}
else if(result==9){
trace("出现了数字9")
}
}
测试影片,发现,输出面板没有任何字符。证明我们写的代码确实坚挺。
3、目的:输出的随机数是 两位数n (10<n≤99)
代码:
var min:uint=10
var max:uint=99
var result:uint=Math.ceil(Math.random()*(max-min))+min
trace(result)
仅需将步骤2内的Math.round替换为Math.ceil即可
可以参照步骤2的代码自行验证
其实,由于本例的代码输出的随机数n要求是整数,那么,10<n≤99
也就相当于11≤n≤99
如此一来,完全可以按照步骤2内的代码,仅需将
var min:uint=10
内的数字10修改为数字11,也可以实现完全相同的目的
4、当然,我们也可以输出带有小数的随机数。
比如说,需要输出介于12.5和21.7之间的随机数,该随机数可以有小数,也可以没有小数。如果有小数的话,只保留到小数点后一位数
代码如下:
var min:Number=12.5
var max:Number=21.7
var result:Number
for(var i:uint;i<50;i++){
result=Math.round(Math.random()*(max*10-min*10))/10+min
trace(result)
}
这里,先是将两个极致都转换成整数(都乘以10),然后将结果再除以10,最后对除以10的结果进行四舍五入操作。这个技巧也比较的常用,推荐大家掌握之。
同理,如果需要保留到小数点后两位数,又当如何呢?开动脑筋想想看。