在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判断checkbox(复选框)是否被选中的代码
Oct 20 Javascript
关于JavaScript中var声明变量作用域的推断
Dec 16 Javascript
JQuery 1.6发布 性能提升,同时包含大量破坏性变更
May 10 Javascript
JS代码判断IE6,IE7,IE8,IE9的函数代码
Aug 02 Javascript
window.location.href IE下跳转失效的解决方法
Mar 27 Javascript
js兼容pc端浏览器并有多种弹出小提示的手机端浮层控件实例
Apr 29 Javascript
JavaScript实现表格点击排序的方法
May 11 Javascript
讲解JavaScript中for...in语句的使用方法
Jun 03 Javascript
浅谈JavaScript中指针和地址
Jul 26 Javascript
Bootstrap笔记之缩略图、警告框实例详解
Mar 09 Javascript
vuejs+element UI点击编辑表格某一行时获取内容填入表单的示例
Oct 31 Javascript
JavaScript 判断浏览器是否是IE
Feb 19 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版本号
2006/10/09 PHP
php中处理mysql_fetch_assoc返回来的数组 不用foreach----echo
2011/05/04 PHP
php smarty 二级分类代码和模版循环例子
2011/06/01 PHP
基于php缓存的详解
2013/05/15 PHP
PHP自带函数给数字或字符串自动补齐位数
2014/07/29 PHP
Alliance vs Liquid BO3 第一场2.13
2021/03/10 DOTA
Js参数值中含有单引号或双引号问题的解决方法
2013/11/06 Javascript
javascript实现的平方米、亩、公顷单位换算小程序
2014/08/11 Javascript
DOM基础教程之使用DOM设置文本框
2015/01/20 Javascript
jQuery实现加入收藏夹功能(主流浏览器兼职)
2016/12/24 Javascript
socket.io学习教程之基本应用(二)
2017/04/29 Javascript
详解如何创建并发布一个 vue 组件
2018/11/08 Javascript
Vue项目中使用better-scroll实现菜单映射功能方法
2019/09/11 Javascript
vue 在服务器端直接修改请求的接口地址
2020/12/19 Vue.js
[02:00]DOTA2英雄COSPLAY闹市街头巡游助威2015国际邀请赛
2015/08/02 DOTA
python生成随机密码或随机字符串的方法
2015/07/03 Python
基于Python实现的ID3决策树功能示例
2018/01/02 Python
对python3标准库httpclient的使用详解
2018/12/18 Python
python面向对象法实现图书管理系统
2019/04/19 Python
对Python _取log的几种方式小结
2019/07/25 Python
python 两种方法修改文件的创建时间、修改时间、访问时间
2020/09/26 Python
CSS3实现div从下往上滑入滑出效果示例
2020/04/28 HTML / CSS
AmazeUI中各种的导航式菜单与解决方法
2020/08/19 HTML / CSS
英国最大的在线奢侈手表零售商:Jura Watches
2018/01/29 全球购物
大学毕业的自我鉴定
2013/10/08 职场文书
教师职称自我鉴定
2014/02/12 职场文书
会计自荐信范文
2014/03/09 职场文书
师德先进个人材料
2014/12/20 职场文书
个人委托函范文
2015/01/29 职场文书
库房管理员岗位职责
2015/02/12 职场文书
女方离婚起诉书
2015/05/18 职场文书
Html5生成验证码的示例代码
2021/05/10 Javascript
Python max函数中key的用法及原理解析
2021/06/26 Python
Javascript使用integrity属性进行安全验证
2021/11/07 Javascript
kubernetes集群搭建Zabbix监控平台的详细过程
2022/07/07 Servers