在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 相关文章推荐
JSON+HTML实现国家省市联动选择效果
May 18 Javascript
JQuery替换DOM节点的方法
Jun 11 Javascript
简介AngularJS的HTML DOM支持情况
Jun 17 Javascript
three.js绘制地球、飞机与轨迹的效果示例
Feb 28 Javascript
全面解析vue中的数据双向绑定
May 10 Javascript
JQuery Ajax 异步操作之动态添加节点功能
May 24 jQuery
JavaScript-定时器0~9抽奖系统详解(代码)
Aug 16 Javascript
JS中移除非数字最多保留一位小数
May 09 Javascript
实现Vue的markdown文档可以在线运行的方法示例
Dec 11 Javascript
scrapyd schedule.json setting 传入多个值问题
Aug 07 Javascript
微信小程序本地存储实现每日签到、连续签到功能
Oct 09 Javascript
javascript/jquery实现点击触发事件的方法分析
Nov 11 jQuery
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
谨慎使用PHP的引用原因分析
2012/09/06 PHP
PHP读取文件或采集时解决中文乱码
2021/03/09 PHP
js 页面关闭前的出现提示的实现代码
2011/05/25 Javascript
EasyUI,点击开启编辑框,并且编辑框获得焦点的方法
2015/03/01 Javascript
下雪了 javascript实现雪花飞舞
2020/08/02 Javascript
JavaScript拖动层Div代码
2017/03/01 Javascript
JavaScript正则替换HTML标签功能示例
2017/03/02 Javascript
jQuery实现简单的抽奖游戏
2017/05/05 jQuery
Bootstrap响应式表格详解
2017/05/23 Javascript
慕课网题目之js实现抽奖系统功能
2017/09/19 Javascript
vue2.0 datepicker使用方法
2018/02/04 Javascript
JS实现导出Excel的五种方法详解【附源码下载】
2018/03/15 Javascript
移动端底部导航固定配合vue-router实现组件切换功能
2019/06/13 Javascript
js设置鼠标悬停改变背景色实现详解
2019/06/26 Javascript
利用不到200行代码写一款属于你自己的js类库
2019/07/08 Javascript
Python实现生成简单的Makefile文件代码示例
2015/03/10 Python
python计算N天之后日期的方法
2015/03/31 Python
Python使用django获取用户IP地址的方法
2015/05/11 Python
Python实现螺旋矩阵的填充算法示例
2017/12/28 Python
python smtplib发送带附件邮件小程序
2018/05/22 Python
Django REST Framework 分页(Pagination)详解
2020/11/30 Python
详解Python调用系统命令的六种方法
2021/01/28 Python
HTML5 新旧语法标记对我们有什么好处
2012/12/13 HTML / CSS
HTML5拖拽功能实现的拼图游戏
2018/07/31 HTML / CSS
详解webapp页面滚动卡顿的解决办法
2018/12/26 HTML / CSS
Raleigh兰令自行车美国官网:英国凤头牌自行车
2018/01/08 全球购物
Notino瑞典:购买香水和美容产品
2019/07/26 全球购物
俄罗斯领先的移动和数字设备在线商店:Svyaznoy.ru
2020/12/21 全球购物
农民工工资发放承诺书
2014/03/31 职场文书
爱情寄语大全
2014/04/09 职场文书
大专生自荐书范文
2014/06/22 职场文书
纪检干部现实表现材料
2014/08/21 职场文书
师德先进个人材料
2014/12/20 职场文书
家长对孩子的寄语
2015/02/26 职场文书
python实现自动化群控的步骤
2021/04/11 Python
最新最全的手机号验证正则表达式
2022/02/24 Javascript