在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 相关文章推荐
JS中==与===操作符的比较
Mar 21 Javascript
JavaScript作用域链使用介绍
Aug 29 Javascript
在firefox和Chrome下关闭浏览器窗口无效的解决方法
Jan 16 Javascript
JavaScript获得表单target属性的方法
Apr 02 Javascript
详解Javacript和AngularJS中的Promises
Feb 09 Javascript
在微信、支付宝、百度钱包实现点击返回按钮关闭当前页面和窗口的方法
Aug 05 Javascript
ionic实现滑动的三种方式
Aug 27 Javascript
ReactNative-JS 调用原生方法实例代码
Oct 08 Javascript
JS中Safari浏览器中的Date
Jul 17 Javascript
Angular 组件之间的交互的示例代码
Mar 24 Javascript
React组件内事件传参实现tab切换的示例代码
Jul 04 Javascript
js实现图片跟随鼠标移动效果
Oct 16 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
PHPWind 发帖回帖Api PHP版打包下载
2010/02/08 PHP
PHP 最大运行时间 max_execution_time修改方法
2010/03/08 PHP
PHP多个版本的分析解释
2011/07/21 PHP
PHP给前端返回一个JSON对象的实例讲解
2018/05/31 PHP
php 使用html5 XHR2实现上传文件与进度显示功能示例
2020/03/03 PHP
用JQuery在网页中实现分隔条功能的代码
2012/08/09 Javascript
基于JQuery模仿苹果桌面的Dock效果(初级版)
2012/10/15 Javascript
js读写(删除)Cookie实例详解
2013/04/17 Javascript
javascript实现输出指定行数正方形图案的方法
2015/08/03 Javascript
Bootstrap中的表单验证插件bootstrapValidator使用方法整理(推荐)
2016/06/21 Javascript
函数四种调用模式以及其中的this指向
2017/01/16 Javascript
nodejs 图解express+supervisor+ejs的用法(推荐)
2017/09/08 NodeJs
Vue路由模块化配置的完整步骤
2019/08/14 Javascript
浅谈如何优雅处理JavaScript异步错误
2019/11/12 Javascript
Vue项目如何引入bootstrap、elementUI、echarts
2020/11/26 Vue.js
简单实现python爬虫功能
2015/12/31 Python
pycharm设置注释颜色的方法
2018/05/23 Python
Python爬虫文件下载图文教程
2018/12/23 Python
python实现小球弹跳效果
2019/05/10 Python
Pandas之排序函数sort_values()的实现
2019/07/09 Python
基于django ManyToMany 使用的注意事项详解
2019/08/09 Python
谈一谈数组拼接tf.concat()和np.concatenate()的区别
2020/02/07 Python
Python实现企业微信机器人每天定时发消息实例
2020/02/25 Python
浅谈盘点5种基于Python生成的个性化语音方法
2021/02/05 Python
Python 图片处理库exifread详解
2021/02/25 Python
详解css3使用transform出现字体模糊的解决办法
2020/10/16 HTML / CSS
在HTML5 canvas里用卷积核进行图像处理的方法
2018/05/02 HTML / CSS
使用纯HTML5编写一款网页上的时钟的代码分享
2015/11/16 HTML / CSS
德国网上药房:Apotal
2017/04/04 全球购物
JACK & JONES荷兰官网:男士服装和鞋子
2021/03/07 全球购物
定义一结构体变量,用其表示点坐标,并输入两点坐标,求两点之间的距离
2015/08/17 面试题
为什么说Ruby是一种真正的面向对象程序设计语言
2012/10/30 面试题
大学生军训自我评价分享
2013/11/09 职场文书
乡镇保密工作承诺书
2015/05/04 职场文书
Python 多线程之threading 模块的使用
2021/04/14 Python
Python连续赋值需要注意的一些问题
2021/06/03 Python