在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知识点收藏
Feb 22 Javascript
jQuery ui1.7 dialog只能弹出一次问题
Aug 27 Javascript
javascript实现json页面分页实例代码
Feb 20 Javascript
使用js复制链接中的部分文字的方法
Jul 30 Javascript
JavaScript实现网站访问次数统计代码
Aug 12 Javascript
JQuery EasyUI的使用
Feb 24 Javascript
jQuery实现移动端Tab选项卡效果
Mar 15 Javascript
基于Vue实现timepicker
Apr 25 Javascript
Vue验证码60秒倒计时功能简单实例代码
Jun 22 Javascript
使用js在layui中实现上传图片压缩
Jun 18 Javascript
在vue中实现禁止回退上一步,路由不存历史记录
Jul 22 Javascript
微信小程序实现简单购物车功能
Dec 30 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
PHP中CURL的CURLOPT_POSTFIELDS参数使用细节
2014/03/17 PHP
PHP ADODB生成HTML表格函数rs2html功能【附错误处理函数用法】
2018/05/29 PHP
使用jscript实现二进制读写脚本代码
2008/06/09 Javascript
JQuery加载图片自适应固定大小的DIV
2013/09/12 Javascript
jQuery的cookie插件实现保存用户登陆信息
2014/04/15 Javascript
js用拖动滑块来控制图片大小的方法
2015/02/27 Javascript
JavaScript实现自动弹出窗口并自动关闭窗口的方法
2015/08/06 Javascript
Sortable.js拖拽排序使用方法解析
2016/11/04 Javascript
@ResponseBody 和 @RequestBody 注解的区别
2017/03/08 Javascript
JavaScript数据结构之广义表的定义与表示方法详解
2017/04/12 Javascript
Vue2.0 组件传值通讯的示例代码
2017/08/01 Javascript
集合Bootstrap自定义confirm提示效果
2017/09/19 Javascript
ionic3+Angular4实现接口请求及本地json文件读取示例
2017/10/11 Javascript
vue中路由参数传递可能会遇到的坑
2017/12/07 Javascript
js序列化和反序列化的使用讲解
2019/01/19 Javascript
JavaScript canvas绘制折线图
2020/02/18 Javascript
vue点击标签切换选中及互相排斥操作
2020/07/17 Javascript
[08:40]Navi Vs Newbee
2018/06/07 DOTA
Python与shell的3种交互方式介绍
2015/04/11 Python
学习python 之编写简单乘法运算题
2016/02/27 Python
django 实现电子支付功能的示例代码
2018/07/25 Python
Django REST framework视图的用法
2019/01/16 Python
python正则-re的用法详解
2019/07/28 Python
python3-flask-3将信息写入日志的实操方法
2019/11/12 Python
10个python爬虫入门基础代码实例 + 1个简单的python爬虫完整实例
2020/12/16 Python
北京某公司的.net笔试题
2014/03/20 面试题
音乐教育感言
2014/03/05 职场文书
英语演讲稿3分钟
2014/04/29 职场文书
村党支部换届选举方案
2014/05/02 职场文书
办理房产证委托书
2014/09/18 职场文书
2015年党性分析材料
2014/12/19 职场文书
小学生2015教师节演讲稿
2015/03/19 职场文书
陈斌强事迹观后感
2015/06/17 职场文书
军训结束新闻稿
2015/07/17 职场文书
mongodb清除连接和日志的正确方法分享
2021/09/15 MongoDB
Python 多线程处理任务实例
2021/11/07 Python