一、js的Math(算數)對象知識
通常我們希望得到的數會是整數
而Math.ceil(),Math.floor(),Math.round(),parseInt()都可以得到整數,現在來看一下他們的區別。
Math.ceil(); //向上取整。 Math.floor(); //向下取整。 parseInt(); //向下取整。 Math.round(); //四舍五入。 Math.random(); //0.0 ~ 1.0 之間的一個偽隨機數。[0,1) 包含0,不包含1。 Math.ceil(Math.random()*10); // 獲取從1到10的隨機整數 ,取0的概率極小。當隨機數取到0時,才返回0;取到0.1返回的是1。 Math.floor(Math.random()*10); //可均衡獲取0到9的隨機整數。 parseInt(Math.random()*10); //可均衡獲取0到9的隨機整數。 Math.round(Math.random()); //可均衡獲取0到1的隨機整數。 Math.round(Math.random()*10); //基本均衡獲取0到10的隨機整數,其中獲取最小值0和最大值10的幾率少一半。
當隨機數取到0~0.4返回0,0.5~1.4返回1……8.5~9.4返回9,9.5~9.9返回10。所以頭尾的分布區間只有其他數字的一半。
二、實際需求
生成[0,max]的隨機數
Math.floor(Math.random()*(max+1)); parseInt(Math.random()*(max+1)); 生成[1,max]的隨機數 Math.floor(Math.random()*10)+1; parseInt(Math.random()*10)+1; 生成[min,max]的隨機數 Math.floor(Math.random()*(max-min)+min); parseInt(Math.random()*(max-min)+min);
三、函數實現
獲取[min,max]的隨機整數,可用在js生成驗證碼或者隨機選中一個選項。
function randomNum(min,max){ switch(arguments.length){ case 1: return parseInt(Math.random()*min+1); break; case 2: return parseInt(Math.random()*(max-min+1)+minNum); break; default: return 0; break; } }
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com