javascript 取整,取余数 math方法

时间:2022-04-12 15:47:39

1.丢弃小数部分,保留整数部分

parseInt() 函数可解析一个字符串,并返回一个整数。

parseInt(string, radix)

参数 描述
string 必需。要被解析的字符串。
radix

可选。表示要解析的数字的基数。该值介于 2 ~ 36 之间。

如果省略该参数或其值为 0,则数字将以 10 为基础来解析。如果它以 “0x” 或 “0X” 开头,将以 16 为基数。

如果该参数小于 2 或者大于 36,则 parseInt() 将返回 NaN。

parseInt("10");    //返回 10
parseInt("19",10); //返回 19 (10+9)
parseInt("11",2); //返回 3 (2+1)
parseInt("17",8); //返回 15 (8+7)
parseInt("1f",16); //返回 31 (16+15)
parseInt("010"); //未定:返回 10 或 8

2.向上取整,有小数,则整数部分加1

ceil() 方法执行的是向上取整计算,它返回的是大于或等于函数参数,并且与之最接近的整数。

Math.ceil(0.60)   //
Math.ceil(0.40) //
Math.ceil(5) //
Math.ceil(5.1) //
Math.ceil(-5.1) // -5
Math.ceil(-5.9) // -5

3.四舍五入

round() 方法可把一个数字舍入为最接近的整数。

Math.round(0.60)  //
Math.round(0.40) //
Math.round(5) //
Math.round(5.1) //
Math.round(-5.1) // -5
Math.round(-5.9) // -6

4.向下取整

floor() 方法执行的是向下取整计算,它返回的是小于或等于函数参数,并且与之最接近的整数。

Math.floor(0.60)  //
Math.floor(0.40) //
Math.floor(5) //
Math.floor(5.1) //
Math.floor(-5.1) // -6
Math.floor(-5.9) // -6

5.取余数

0%4  //
1%4 //
2%4 //
3%4 //
4%4 //
5%4 //
6.Math方法延伸
6.1 max() 方法,比较一组数值中的最大值,返回最大值。
var maxnum = Math.max(12,6,43,58,70);
alert(maxnum); //"70"

6.2 min() 方法,比较一组数值中的最小值,返回最小值。

var minnum = Math.min(12,6,43,58,70);
alert(minnum); //"6"

7.产生随机数方法
random()方法,返回一个大于等于0小于1的随机数,其实是小数值。
随机数范围用区间表示即为[0,1),包含0不包含1。

这里有一个公式:
返回的值 = Math.floor(Math.random() * 可能值的总数 + 第一个可能的值),
套用这个公式可以返回某个整数范围内的随机数。
我们注意到了上面的公式中调用了 floor() 方法,因为 random() 总是返回一个小数,而我们要返回的是整数,所以得对其返回值进行舍入操作。

比如我们要随机产生1到10之间的整数,[1,10],包含1和10,可以套用公式编写下面的代码:

var num = Math.floor(Math.random() * 10 + 1);

[1,10] 之间包含10个数,因此可能值的总数是10,则 random()*10,即产生 [0,10) 之间的随机数;
第一个可能的值是1,则 random()*10+1,即产生 [1,11) 之间的随机数;
此时它产生的最小整数是1了,但最大整数并不是10,它会产生10.xxxxxxxxxx 这样的小数,于是用 floor() 将其向下舍入,这样它产生的最大整数就是10了。

如果要随机产生 [5,10] 之间的整数,那么套用公式即可编写这样的代码:

var num = Math.floor(Math.random() * 6 + 5);

[5,10] 之间包含6个数,所以可能值的总数是6,则 random()*6;第一个可能的值是5,所以 random()*6+5;最后用 floor() 将其向下舍入。

8.其他计算方法

下面的这样方法都是用来进行各种简单或复杂的计算。

Math.abs(num)                                   返回 num 的绝对值

Math.exp(num)                                   返回 Math.E 的 num 次幂

Math.log(num)                                    返回 num 的自然对数

Math.pow(num,power)                        返回 num 的 power 次幂

Math.sqrt(num)                                  返回 num 的平方根

Math.acos(x)                                      返回 x 的反余弦值

Math.asin(x)                                       返回 x 的反正弦值

Math.atan(x)                                      返回 x 的反正切值

Math.atan2(y,x)                                  返回 y/x 的反正切值

Math.cos(x)                                        返回 x 的余弦值

Math.sin(x)                                         返回 x 的正弦值

Math.tan(x)                                        返回 x 的正切值