JavaScript中数字的常用方法

/*
1、Math.random()。
    获取0~1之间的随机小数,包含0,但是不包含1。
    因为精度问题,小数点后只能保留17位。
    返回值是随机小数。
2、Math.round(数字)。
    对数字进行四舍五入取整。
    返回值是四舍五入后的整数。
3、Math.ceil(数字)。
    对数字进行向上取整。
    返回值是向上取整后的整数。
4、Math.floor(数字)。
    对数字进行向下取整。
    返回值是向下取整后的整数。
5、Math.pow(底数, 指数)。
    对数字进行取幂运算。
    返回值是取幂后的结果。
6、Math.sqrt(数字)。
    对数字进行二次方根运算。
    返回值是二次方根后的结果。
7、Math.abs(数字)。
    对数字进行绝对值运算。
    返回值是绝对值运算后的结果。
8、Math.max(数字1, 数字2, 数字3, 数字4, ...)。
    获取若干数字中的最大值。
    返回值是若干数字中的最大值。
9、Math.min(数字1, 数字2, 数字3, 数字4, ...)。
    获取若干数字中的最小值。
    返回值是若干数字中的最小值。
10、Math.PI。
    得到一个近似π的值。
    返回值是一个近似π的值。

除此之外还有其他方法(如三角函数等),只是不常用,此处省略。
*/

案例(获取0~10之间的随机整数):

// 第一种方法(不推荐)。
var s1 = Math.random();
var s2 = s1*10;
var res = Math.round(s2);
console.log(res);
/*
上述方式获取随机整数不推荐的原因是0和10获取到的概率比其他数值获取到的概率要低。
0~0.499...   ———— 0
0.5~1.499... ———— 1
......
8.5~9.499... ———— 9
9.5~9.999... ———— 10
这样获取的随机数字不是很严谨。
*/

// 第二种方法(推荐)。
/*
除了使用round()取证以外,还可使用ceil()和floor()进行取整。
使用ceil()取整,取整之前的范围区间是[-0.999..., 9.999...]。
使用floor()取整,取整之前的范围区间是[0, 10.999...]。
由于ceil()取整之前的范围区间复杂(既有正数又有负数)。所以我们选择floor()取整。
*/
var s1 = Math.random();
var s2 = s1*11;
var res = Math.floor(s2);
console.log(res);
/*
我们只需将从random()中获取到的随机数乘以11,即可得到[0, 10.999...]的范围区间。
0~0.999...   ———— 0
1~1.999...   ———— 1
......
9~9.999...   ———— 9
10~10.999... ———— 10
此时每个随机数获取到的概率是一样的。

规律总结:
    如果要获取0~20之间的随机整数,只需将"s1*11"改成"s1*21"即可。
    如果要获取10~20之间的随机整数,只需将"s1*11"改成"s1*11+10"即可。
    如果要获取x~y之间的随机整数,只需将"s1*11"改成"s1*(y-x+1)+x"即可。
*/
  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值