在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 相关文章推荐
屏蔽鼠标右键、Ctrl+n、shift+F10、F5刷新、退格键 的javascript代码
Apr 01 Javascript
5款Javascript颜色选择器
Oct 25 Javascript
用jquery实现点击栏目背景色改变
Dec 10 Javascript
JS文本框追加多个下拉框的值的简单实例
Jul 12 Javascript
jQuery的几个我们必须了解的特点
May 03 Javascript
全面解析Bootstrap表单使用方法(表单控件)
Nov 24 Javascript
jQuery禁用键盘后退屏蔽F5刷新及禁用右键单击
Jan 22 Javascript
jQuery Timelinr实现垂直水平时间轴插件(附源码下载)
Feb 16 Javascript
微信小程序中button组件的边框设置的实例详解
Sep 27 Javascript
判断div滑动到底部的scroll实例代码
Nov 15 Javascript
javascript实现遮罩层动态效果实例
May 14 Javascript
Vue3.0 响应式系统源码逐行分析讲解
Oct 14 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读取3389的脚本
2014/05/06 PHP
php实现zip压缩文件解压缩代码分享(简单易懂)
2014/05/10 PHP
几个比较实用的JavaScript 测试及效验工具
2010/04/18 Javascript
jQuery的实现原理的模拟代码 -1 核心部分
2010/08/01 Javascript
利用ajaxfileupload插件实现文件上传无刷新的具体方法
2013/06/08 Javascript
JS数组去重与取重的示例代码
2014/01/24 Javascript
javascript实现youku的视频代码自适应宽度
2015/05/25 Javascript
JavaScript中的lastIndexOf()方法使用详解
2015/06/06 Javascript
谈谈基于iframe、FormData、FileReader三种无刷新上传文件的方法
2015/12/03 Javascript
Javascript基础之数组的使用
2016/05/13 Javascript
用JS动态设置CSS样式常见方法小结(推荐)
2016/11/10 Javascript
Node.js设置CORS跨域请求中多域名白名单的方法
2017/03/28 Javascript
JavaScript订单操作小程序完整版
2017/06/23 Javascript
利用types增强vscode中js代码提示功能详解
2017/07/07 Javascript
JavaScript实现HTML5游戏断线自动重连的方法
2017/09/18 Javascript
JavaScript 高性能数组去重的方法
2018/09/20 Javascript
vue3.0中友好使用antdv示例详解
2021/01/05 Vue.js
[52:44]VGJ.T vs infamous Supermajor小组赛D组败者组第一轮 BO3 第一场 6.3
2018/06/04 DOTA
Python和C/C++交互的几种方法总结
2017/05/11 Python
python 读取txt中每行数据,并且保存到excel中的实例
2018/04/29 Python
Django框架模板介绍
2019/01/15 Python
基于python3生成标签云代码解析
2020/02/18 Python
Django框架获取form表单数据方式总结
2020/04/22 Python
利用CSS3实现平移动画效果示例代码
2016/10/12 HTML / CSS
康帕斯酒店预订:Compass Hospitality(支持中文)
2018/08/23 全球购物
英国鹦鹉店:Parrot Essentials
2018/12/03 全球购物
同学聚会欢迎辞
2014/01/14 职场文书
《与象共舞》教学反思
2014/02/24 职场文书
《大禹治水》教学反思
2014/04/27 职场文书
计算机专业毕业生求职信
2014/04/30 职场文书
企业授权委托书范本
2014/09/22 职场文书
2016优秀员工先进事迹材料
2016/02/25 职场文书
mysql 如何获取两个集合的交集/差集/并集
2021/06/08 MySQL
A22国内电台短波广播频率表
2022/05/10 无线电
Win11如何默认打开软件界面最大化?Win11默认打开软件界面最大化的方法
2022/07/15 数码科技
MySQL count(*)统计总数问题汇总
2022/09/23 MySQL