js中Math.random()生成指定范围数值的随机数

http://www.111cn.net/wy/js-ajax/57062.htm

Math.random() 这个方法相信大家都知道,是用来生成随机数的。不过一般的参考手册时却没有说明如何用这个方法来生成指定范围内的随机数。这次我就来详细的介绍一下Math.random(),以及如何用它来生成制定范围内的随机数。
w3school的random()教程
定义和用法

random() 方法可返回介于 0 ~ 1 之间的一个随机数。
语法

Math.random()

返回值

0.0 ~ 1.0 之间的一个伪随机数。
实例

在本例中,我们将取得介于 0 到 1 之间的一个随机数:

<script type="text/javascript">
document.write(Math.random());
</script>
// 输出:
0.15246391076246546

  

如何生成指定范围值的随机数

看完w3school的教程,应该知道Math.random()方法的基本用法了。
利用 parseInt()、Math.floor() 或者 Math.ceil()进行四舍五入处理

我们看到,直接使用Math.random()方法,生成的是一个小于1的数,所以:

1 Math.random()*5

得到的结果是一个小于5的随机数。而我们通常希望得到的是0-5之间的整数,所以我们需要对得到的结果四舍五入处理一下,从而得到我们期望的整数。parseInt()、Math.floor()和Math.ceil()都可以起到四舍五入的作用。

1 var randomNum = Math.random()*5;
2 alert(randomNum); // 2.9045290905811183
3 alert(parseInt(randomNum,10)); // 2
4 alert(Math.floor(randomNum)); // 2
5 alert(Math.ceil(randomNum)); // 3

由测试的代码我们可以看到,parseInt()和Math.floor()的效果是一样的,都是向下取整数部分。所以parseInt(Math.random()*5,10)和Math.floor(Math.random()*5)都是生成的0-4之间的随机数,Math.ceil(Math.random()*5)则是生成的1-5之间的随机数。
生成指定范围数值随机数

所以,如果你希望生成1到任意值的随机数,公式就是这样的:

1 // max - 期望的最大值
2 parseInt(Math.random()*max,10)+1;
3 Math.floor(Math.random()*max)+1;
4 Math.ceil(Math.random()*max);

如果你希望生成0到任意值的随机数,公式就是这样的:

1 // max - 期望的最大值
2 parseInt(Math.random()*(max+1),10);
3 Math.floor(Math.random()*(max+1));

如果你希望生成任意值到任意值的随机数,公式就是这样的:

// max - 期望的最大值
// min - 期望的最小值 
parseInt(Math.random()*(max-min+1)+min,10);
Math.floor(Math.random()*(max-min+1)+min);

怎么样?现在应该很清楚如何去生成你需要随机数了吧?!希望看完这篇文章对你的开发有帮助!这次就到这里了!

时间: 2024-08-18 18:07:04

js中Math.random()生成指定范围数值的随机数的相关文章

在使用Math.random()生成6位随机数遇到的问题,并成功得到6位随机数

最近在做卫生局的一个考务网时需要实现一个短信发送验证码的功能,因此就必须使用到随机生成6位验证码的功能,开始觉的简单的,随便写了个 int i=(int)(Math.random()*1000000+100000); String messageCode = String.valueOf(i); 然后测试发送了下,是发送了6位随机数,以为是正确的,但在之后的反复测试中忽然发现这个验证码有时会出现7位的,然后去看代码感觉没问题啊, Math.random()是产生0.0到1.0之间的doule的随

项目--js中替换目标字符串指定的所有字符

js提供的字符串替换函数replace可以将字符串中符合条件的字符串替换成目标字符串.但是一般使用字符串进行查找替换只能替换第一个符合条件的结果.如var str = 大家都是男人吗,难道不是吗!;str = str.replace('吗', '嘛');alert(str);var str = 大家都是男人吗,难道不是吗!;str = str.replace('吗', '嘛');alert(str);上述代码中只有第一个吗被替换,输出结果是大家都是男人嘛,难道不是吗! ,嘿嘿如果想全部替换字符串

js中Math.round、parseInt、Math.floor和Math.ceil小数取整总结(转)

js中Math.round.parseInt.Math.floor和Math.ceil小数取整总结 Math.round.parseInt.Math.floor和Math.ceil 都可以返回一个整数,具体的区别请看下面的总结. 一.Math.round 作用:四舍五入,返回参数+0.5后,向下取整. 如: Math.round(5.57) //返回6 Math.round(2.4) //返回2 Math.round(-1.5) //返回-1 Math.round(-5.8) //返回-6 二.

生成指定范围的一组随机数并求平均值

Math.random()是令系统随机选取大于等于 0.0 且小于 1.0 的伪随机 double 值,是Java语言常用代码. 随机数生成20~90之间的数值,并求平均数: public class Random01 { public static void main(String[] args) { int len = 5; int sum = 0; int[] arr = new int[len]; for (int i = 0; i < len; i++) { arr[i] = (int

js中math对象的使用

Math算数对象的作用:执行普通的算数任务: JavaScript 提供 8 种可被 Math 对象访问的算数值: 常数(Math.E) 圆周率(Math.PI) 2 的平方根(Math.SQRT2) 1/2 的平方根(Math.SQRT1_2) 2 的自然对数(Math.LN2) 10 的自然对数(Math.LN10) 以 2 为底的 e 的对数(Math.LOG2E) 以 10 为底的 e 的对数(Math.LOG10E) Math中还提供了几个常用函数: round()对一个数进行四舍五入

JS中Math函数的常用方法

Math 是数学函数,但又属于对象数据类型 typeof Math => ‘object’ console.dir(Math) 查看Math的所有函数方法. 1,Math.abs() 获取绝对值 Math.abs(-12) = 12 2,Math.ceil() and Math.floor() 向上取整和向下取整 console.log(Math.ceil(12.03));//13 console.log(Math.ceil(12.92));//13 console.log(Math.floor

java Math.random()生成从n到m的随机整数

Java中Math类的random()方法可以生成[0,1)之间的随机浮点数.而double类型数据强制转换成int类型,整数部分赋值给int类型变量,小数点之后的小数部分将会丢失. 如果要生成[0,n]的随机整数的话,只需要Math.random()乘以n+1,生成[0,n+1)的浮点数,再强制类型转换为int类型,只取其整数部分,即可得到[0,n]的整数. int b=(int)(Math.random()*10);//生成[0,9]之间的随机整数. int temp=m+(int)(Mat

JS中Math对象总结

JS中的Math对象提供对数据的数学计算. Math对象属性 Math对象方法 其中max和min方法都可以传入多个参数并正常运算,其它传入参数过多无意义,只取靠前的参数.

js中定义json生成Tree树

这里说名的是js中生成json       arry是js中定义的json 树插件是jquery.ztree var param = { }; $.post("manager_treeList", param, function(data) { //循环列表 var setting = { view: { dblClickExpand: false, showLine: true, selectedMulti: false }, data: { simpleData: { enable