在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 相关文章推荐
Jquery ajax不能解析json对象,报Invalid JSON错误的原因和解决方法
Mar 27 Javascript
Jquery 复选框取值兼容FF和IE8(测试有效)
Oct 29 Javascript
jquery简单实现滚动条下拉DIV固定在头部不动
Nov 25 Javascript
JavaScript判断字符长度、数字、Email、电话等常用判断函数分享
Apr 01 Javascript
JS函数的几种定义方式分析
Dec 17 Javascript
利用CDN加速react webpack打包后的文件详解
Feb 22 Javascript
vue 开发一个按钮组件的示例代码
Mar 27 Javascript
使用vue-router与v-if实现tab切换遇到的问题及解决方法
Sep 07 Javascript
JS+html5实现异步上传图片显示上传文件进度条功能示例
Nov 09 Javascript
JavaScript中的惰性载入函数及优势
Feb 18 Javascript
vue v-for 点击当前行,获取当前行数据及event当前事件对象的操作
Sep 10 Javascript
原生JS实现九宫格抽奖
Sep 13 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
overlord人气高涨,却被菲利普频繁举报,第四季很难在国内上映
2020/05/06 日漫
PHP字符串处理的10个简单方法
2010/06/30 PHP
PHP下对数组进行排序的函数
2010/08/08 PHP
php的sprintf函数的用法 控制浮点数格式
2014/02/14 PHP
PHP基于php_imagick_st-Q8.dll实现JPG合成GIF图片的方法
2014/07/11 PHP
PHP生成随机数的方法实例分析
2015/01/22 PHP
Js切换功能的简单方法
2010/11/23 Javascript
尝试在让script的type属性等于text/html
2013/01/15 Javascript
Jquery实现三层遍历删除功能代码
2013/04/23 Javascript
基于JavaScript自定义构造函数的详解说明
2013/04/24 Javascript
textarea 控制输入字符字节数(示例代码)
2013/12/27 Javascript
Ajax请求在数据量大的时候出现超时的解决方法
2014/02/27 Javascript
JavaScript支持的最大递归调用次数分析
2014/06/24 Javascript
javascript属性访问表达式用法分析
2015/04/25 Javascript
js判断鼠标位置是否在某个div中的方法
2016/02/26 Javascript
一道关于JavaScript变量作用域的面试题
2016/03/08 Javascript
vue-cli系列之vue-cli-service整体架构浅析
2019/01/14 Javascript
[01:17:12]职来职往完美电竞专场
2014/09/18 DOTA
[00:33]2018DOTA2亚洲邀请赛TNC出场
2018/04/04 DOTA
Python3 获取一大段文本之间两个关键字之间的内容方法
2018/10/11 Python
python实现图片彩色转化为素描
2019/01/15 Python
Python for循环通过序列索引迭代过程解析
2020/02/07 Python
Python selenium爬取微博数据代码实例
2020/05/22 Python
python的pip有什么用
2020/06/17 Python
手对手的教你用canvas画一个简单的海报的方法示例
2018/12/10 HTML / CSS
VSCode 自定义html5模板的实现
2019/12/05 HTML / CSS
新加坡最佳婴儿用品店:Mamahood.com.sg
2018/08/26 全球购物
一套Delphi的笔试题二
2013/05/11 面试题
学生实习介绍信
2014/01/15 职场文书
工作失职检讨书(精华篇)
2014/10/15 职场文书
幼师辞职信范文
2015/02/27 职场文书
男人帮观后感
2015/06/18 职场文书
2015年中学图书馆工作总结
2015/07/22 职场文书
html中两种获取标签内的值的方法
2022/06/16 jQuery
win10如何更改appdata文件夹的默认位置?
2022/07/15 数码科技
向Spring IOC 容器动态注册bean实现方式
2022/07/15 Java/Android