JS进位取舍和产生随机数结合
一、进位取整
最开始,先来看一下JS中进位取舍的几个小示例:
//JS进位取舍 //向上取整 alert(Math.ceil(25.9)); //打印:26 alert(Math.ceil(25.5)); //打印:26 alert(Math.ceil(25.1)); //打印:26 //向下取整 alert(Math.floor(25.9)); //打印:25 alert(Math.floor(25.5)); //打印:25 alert(Math.floor(25.1)); //打印:25 //标准取整(四舍五入) alert(Math.round(25.9)); //打印:26 alert(Math.round(25.5)); //打印:26 alert(Math.round(25.1)); //打印:25 //-----------------------------------------------------------------------------------从上面的示例很容易看出不同取舍函数的效果:
向上取整,如果小数部分大于0,则经过“向上取整”后,将在取得除去小数的整数部分+1的数(如(25.1,取26)。
向下取整,无论小数部分为多少,都直接舍去,只取除去小数剩余的整数部分(如25.9,取25)。
标准取整,四舍五入,小数部分小于0.5的舍去小数,只取整数(如25.2,则取25);小数部分大于等于0.5的,取截去小数后的整数部分+1的整数(如25.7,则取26)。
二、产生随机数
<pre name="code" class="html">//产生随机数 //(0,1):产生0到1之间,不包括0和1的随机数1个。 (显示方式:alert()为弹窗显示) alert(Math.random()); //----------------------------------------------------------------------- //10个随机数:0到1之间,不包括0和1。 (显示方式:document.write()为页面显示) for(var i=0;i<=10;i++){ document.write(Math.random()); document.write('<br/>'); } //-----------------------------------------------------------------------
三、进位取整与产生随机数结合及运用
//[1,10]的随机数10个 for(var i=0;i<=10;i++){ document.write(Math.floor(Math.random()*10 + 1)); document.write('<br/>'); } //----------------------------------------------------------------------- //[0,10]的随机数10个 for(var i=0;i<=10;i++){ document.write(Math.round(Math.random()*10)); document.write('<br/>'); } //其中一个示例“10,6,9,10,3,0,3,2,5,4,2” ----------------------------------------------------------------------- //[5,14]的随机数10个 for(var i=0;i<=10;i++){ document.write(Math.floor(Math.random()*10+ 5)); document.write('<br/>'); } //----------------------------------------------------------------------- //[5,10]的随机数10个 for(var i=0;i<=10;i++){ document.write(Math.floor(Math.random()*(10-5+1)+ 5)); document.write('<br/>'); } //----------------------------------------------------------------------- //打印[10~100]的随机数10个 documentDataArray(10,100,10); 打印:其中一个示例“95,38,44,75,69,82,24,22,37,75” // ///sum // ///产生随机数组,产生[start,end]之间的num个随机数(包括数start和end) // ///sum function select(start,end,num) { //定义一个数组 var item = new Array(); //循环产生随机数 for (var i=0;i<num;i++) { var total = end - start +1; var result = Math.floor(Math.random() * total + start); //将产生的随机数 放入数组中 item.push(result); } return item } function documentDataArray(start,end,num){ var item = new Array(); item = select(start,end,num); for (var j = 0;j<num;j++) { document.write(item[ j ]); document.write('<br/>'); } } //----------------------------------------------------------------------- //打印(10~100)的随机数10个 documentDataArray(10,100,10); function documentDataArray(start,end,num){ //其中一个示例为“12,15,38,74,53,25,64,73,89,88”共10个 var item = new Array(); item = select(start,end,num); for (var j = 0;j<num;j++) { document.write(item[ j ]); document.write('<br/>'); } } // ///sum // ///产生随机数组,产生(start,end)之间的num个随机数(不包括数start和end。) // ///sum function select(start,end,num){ //定义一个数组 var item = new Array(); //循环产生随机数 for (var i=0;i<num;i++) { var total = end - start +1; var result = Math.floor(Math.random() * total + start); //将产生为start和end的随机数移除【是否包括start或end,只需在此简单更改即可】 if (result==start || result==end) { //重新产生一个随机数 --i; } else { //将产生的随机数 放入数组中 item.push(result); } } return item } //-----------------------------------------------------------------------------------上面的的随机数可以用于简单的验证码;当然,有更加简便且丰富的验证码产生方式,用正则表达式产生0~9,、a~z、A~Z的随机字符。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。