當前位置:編程學習大全網 - 編程軟體 - 壹個JavaScript的Math.random()問題

壹個JavaScript的Math.random()問題

這是因為JavaScript產生的隨機數是個純小數(大於等於0小於1的實數),但小數點後面的小數位數肯定不是固定16位的啊,比如 0.123 是3位小數,0.987654321 是9位小數。所以僅靠獲取小數點後的數字就得到16位數的想法是不靠譜的。

正確的做法:第壹種是把隨機數乘以9再加1,就得到1到9.9999……的數字,再乘以10的15次方(也就是1後面15個0),最後取整,就得到1000……(1後面15個0,即最小的16位數)到9999……(16個9,即最大的16位數)之間的數字了:

function?random(){

return?parseInt((Math.random()*9+1)*Math.pow(10,15));

}

第二種是把16個1位數的隨機整數拼在壹起也就是16位數了:

function?random(){

for(var?s="",i=0;i<16;i++)s+=parseInt(Math.random()*10);

return?s;

}

兩種方法的區別在於,第壹種產生的數字是純的16位數(0不能作為開頭),類型是數值,效率應該是較高的;第二種產生的數字則允許0開頭,類型是字符串,效率相對差壹些。

  • 上一篇:天津中科飛航技術有限公司怎麽樣?
  • 下一篇:數控編程代碼G50是什麽意思?
  • copyright 2024編程學習大全網