一、进位取整
最开始,先来看一下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)。
二、产生随机数
//产生随机数
//(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的随机字符。