JS 浅谈生成指定范围内随机整数的五种方法
2018年3月8日
JS 浅谈生成指定范围内随机整数的五种方法
Math对象方法random()生成的随机数带有小数点,随机整数的方法有很多种,平时经常用到,所以记录五种简单的方法。
Math.random(); 返回介于 0(包含) ~ 1(不包含) 之间的一个随机数。
如下生成一个0到6的随机数:
Math.random()*6
举例生成一个3~9之间的整数看五种方法更直观。
一、基于Math对象方法 ceil() 对数进行上舍入。
公式如下:
Math.ceil((Math.random()*(max-min+1))+min-1);
代码如下:
Math.ceil((Math.random()*7)+2);
二、基于Math对象方法 floor() 对数进行下舍入。
公式如下:
Math.floor((Math.random()*(max-min+1))+min);
代码如下:
Math.floor((Math.random()*7)+3);
三、基于Math对象方法 round() 对数进行四舍五入。
公式如下:
Math.round((Math.random()*(max-min))+min);
代码如下:
Math.round((Math.random()*6)+3);
四、基于Number对象方法 toFixed(x) 把数字四舍五入为指定x小数位数的数字,把数字转换为字符串。
公式如下:
((Math.random()*(max-min))+min).toFixed();
代码如下:
((Math.random()*6)+3).toFixed();
五、基于JavaScript全局函数 parseInt() 解析一个字符串,并返回一个整数。
公式如下:
parseInt((Math.random()*(max-min+1))+min);
代码如下:
parseInt((Math.random()*7)+3);
直接套用上面的公式就可以了
function rand(x,y){
return Math.ceil((Math.random()*(y-x+1))+x-1);
}
rand(3,9);
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
前端优化,了解浏览器重排与重绘
2018年3月15日 当DOM变化影响了元素的几何属性(宽、高改变等等) 浏览器此时需要重新计算元素几何属性 并且页面中其他元素的几何属性可能会受影响 这样渲染树就发生了改变,也就是重新构造RenderTree渲染树 这个过程叫做重排(reflow) 如果DOM变化仅仅影响的了背景色等等非几何属性 此时就发生了重绘(repaint)而不是重排 因为布局没有发生改变 页面发生重绘和重排,都会影响性能(重绘还好一些),尽量避免或减少重排 触发重排 页面布局和元素几何属性的改变就会导致重排 下列情况会发生重排 页面初始渲染 添加/删除可见DOM元素 改变元素位置 改变元素尺寸(宽、高、内外边距、边框等) 改变元素内容(文本或图片等) 改变窗口尺寸 不同的条件下发生重排的范围及程度会不同 某些情况甚至会重排整个页面,比如滑动滚动条 浏览器的优化:渲染队列 div.style.left = '10px'; div.style.top = '10px'; div.style.width = '20px'; div.style.height = '20px'; 如上,修改了元素的left、top、...
- 下一篇
从壹开始前后端分离 [ Vue2.0+.NET Core2.1] 十六 ║ Vue前篇:ES6初体验 & 模块化编程
缘起 昨天说到了《[从壹开始前后端分离 [ Vue2.0+.NET Core2.1] 十五 ║ Vue前篇:JS对象&字面量&this](https://www.cnblogs.com/laozhang-is-phi/p/9580807.html)》,通过总体来看,好像大家对这一块不是很感兴趣,嗯~~这一块确实挺枯燥的,不能直接拿来代码跑一下那种,不过还是得说下去,继续加油吧!如果大家对昨天的小demo练习的话,相信现在已经对JS的面向对象写法很熟悉了,如果嵌套字面量定义函数,如何使用this关键字指向。今天呢,主要说一下ES6中的一些特性技巧,然后简单说一下模块化的问题,好啦,开始今天的讲解~ 还是老规矩,一言不合就是上代码 str1 = 'Hello JS!'; function fun1() { var str1 = 'Hello C#!'; } fun1(); alert(str1); 大家猜猜,最后会弹出来哪一句话? 零、今天要完成浅紫色的部分 一、什么是传说中的ES6 这些定义网上一大堆,不过还是粘出来,大家可以统一看一下,简单了解了解: 1、定义 ECMA...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8编译安装MySQL8.0.19
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS关闭SELinux安全模块
- 设置Eclipse缩进为4个空格,增强代码规范
- SpringBoot2整合Redis,开启缓存,提高访问速度