在javascript中随机数 math random如何生成指定范围数值的随机数


Posted in Javascript onOctober 21, 2015

今天有朋友向我请教:JavaScript 怎么生成指定范围数值随机数。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的数,所以:

Math.random()*5

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

var randomNum = Math.random()*5;
alert(randomNum); // 2.9045290905811183 
alert(parseInt(randomNum,10)); // 2
alert(Math.floor(randomNum)); // 2
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到任意值的随机数,公式就是这样的:

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

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

// max - 期望的最大值
parseInt(Math.random()*(max+1),10);
Math.floor(Math.random()*(max+1));
如果你希望生成任意值到任意值的随机数,公式就是这样的:
// max - 期望的最大值
// min - 期望的最小值 
parseInt(Math.random()*(max-min+1)+min,10);
Math.floor(Math.random()*(max-min+1)+min);

看完本篇是不是收获颇多啊,对于随机数 math random的使用是不是明白了,希望本篇文章能够给您带来帮助,谢谢!

Javascript 相关文章推荐
用JavaScript脚本实现Web页面信息交互
Dec 21 Javascript
用javascript获取textarea中的光标位置
May 06 Javascript
Jquery 最近浏览过的商品的功能实现代码
May 14 Javascript
基于KMP算法JavaScript的实现方法分析
May 03 Javascript
jquery对table中各数据的增加、保存、删除操作示例
May 14 Javascript
jquery向上向下取整适合分页查询
Sep 06 Javascript
jQuery Validate表单验证插件 添加class属性形式的校验
Jan 18 Javascript
JavaScript学习总结之JS、AJAX应用
Jan 29 Javascript
Javascript中常用的检测方法小结
Oct 08 Javascript
微信小程序 聊天室简单实现
Apr 19 Javascript
Node之简单的前后端交互(实例讲解)
Nov 14 Javascript
解决layui laydate 时间控件一闪而过的问题
Sep 28 Javascript
JS+CSS实现的经典圆角下拉菜单效果代码
Oct 21 #Javascript
chrome调试javascript详解
Oct 21 #Javascript
Javascript 计算字符串在localStorage中所占字节数
Oct 21 #Javascript
深入解析JavaScript的闭包机制
Oct 20 #Javascript
JavaScript中字面量与函数的基本使用知识
Oct 20 #Javascript
JavaScript基本的输出和嵌入式写法教程
Oct 20 #Javascript
javascript省市级联功能实现方法实例详解
Oct 20 #Javascript
You might like
40年前的这部特摄片恐龙特级克塞号80后的共同回忆
2020/03/08 日漫
一个简单的PHP&amp;MYSQL留言板源码
2020/07/19 PHP
Session保存到数据库的php类分享
2011/10/24 PHP
PHP遍历目录文件的常用方法小结
2017/02/03 PHP
yii2简单使用less代替css示例
2017/03/10 PHP
phpstorm 配置xdebug的示例代码
2019/03/31 PHP
jquery下拉select控件操作方法分享(jquery操作select)
2014/03/25 Javascript
js实现顶部可折叠的菜单工具栏效果实例
2015/05/09 Javascript
js控制div弹出层实现方法
2015/05/11 Javascript
JavaScript中的函数嵌套使用
2015/06/04 Javascript
JavaScript动态提示输入框输入字数的方法
2015/07/27 Javascript
Bootstrap中的Panel和Table全面解析
2016/06/13 Javascript
原生JS实现 MUI导航栏透明渐变效果
2017/11/07 Javascript
vue路由前进后退动画效果的实现代码
2018/12/10 Javascript
Vue+abp微信扫码登录的实现代码示例
2020/01/06 Javascript
JavaScript将数组转换为链表的方法
2020/02/16 Javascript
解决vue组件没显示,没起作用,没报错,但该显示的组件没显示问题
2020/09/02 Javascript
Vue项目开发常见问题和解决方案总结
2020/09/11 Javascript
vant时间控件使用方法详解
2020/12/24 Javascript
Python实现复杂对象转JSON的方法示例
2017/06/22 Python
pytorch中tensor的合并与截取方法
2018/07/26 Python
Python常用的json标准库
2019/02/19 Python
解决Django中多条件查询的问题
2019/07/18 Python
python 求10个数的平均数实例
2019/12/16 Python
在pycharm中使用matplotlib.pyplot 绘图时报错的解决
2020/06/01 Python
HTML5+CSS3实现机器猫
2016/10/17 HTML / CSS
什么是Assembly(程序集)
2014/09/14 面试题
Unix里面如何在后台运行程序
2016/10/14 面试题
个人素质的自我评价分享
2013/12/16 职场文书
元旦促销方案
2014/03/15 职场文书
煤矿安全生产标语
2014/06/06 职场文书
优秀党员学习焦裕禄精神思想汇报范文
2014/09/10 职场文书
2014年营销工作总结
2014/11/22 职场文书
幼儿教师个人总结
2015/02/05 职场文书
旷工辞退通知书
2015/04/17 职场文书
停发工资证明范本
2015/06/12 职场文书