2011-02-12 41 views
0

我正在嘗試做一個數字自動生成器。但我在如何將數字強制爲8位時遇到問題。如何在JavaScript中創建8位數字?

 

for(i=1;i<=100;i++) { 
    var i = x++; 

    var test = i.toFixed(8); // I used this but this is only for decimals 

    jQuery('.generated_table').append(test+'<br />');; 
} 

請幫忙。

+0

你的意思是你想他們零填充,使他們總是顯示爲8個字符?例如23應該寫成00000023? – 2011-02-12 13:31:35

+0

整數? – 2011-02-12 13:31:46

+0

另外,您在循環內設置了迭代器變量。你確定你想這麼做嗎? – 2011-02-12 13:32:54

回答

1

的whooo!我得到了一個餡餅::嘗試它

for(i=1;i<=100;i++) { 
    //var i = x++; 

    var test = i.toPrecision(8).replace("\.","");  
    jQuery('.generated_table').append(test+'<br />');; 
} 
2

使用toPrecision:

(10000000).toPrecision(8); //=> '10000000' 
(100).toPrecision(8); //=> '100.00000' 

如果你的意思是數字前有前導零的:

var i = (100).toPrecision(8).split('.').reverse().join(''); //=> '00000100' 

你也可以做出一個Number.prototype功能:

Number.prototype.leadingZeros = function(n) { 
    return this.toPrecision(n).split('.').reverse().join(''); 
}; 

(100).leadinZeros(8); //=> '00000100' 

爲了完整:將任何(數字)前導字符打印到任何數字的更精確的方式可以是:

Number.prototype.toWidth = function(n,chr) { 
    chr = chr || ' '; 
    var len = String(parseFloat(this)).length; 
    function multiply(str,nn){ 
     var s = str; 
     while (--nn>0){ 
      str+=s; 
     } 
     return str; 
    } 
    n = n<len ? 0 : Math.abs(len-n); 
    return (n>1 && n ? multiply(chr,n) : n<1 ? '' : chr)+this; 
}; 
(100).toWidth(8,'0'); //=> 00000100 
0
var randNum = ""; 
var MAX_LENGTH = 8; 

while(randNum.toString().length < MAX_LENGTH){ 
var temp = Math.floor(Math.random() * 10); 
randNum += temp.toString(); 
} 

alert(randNum); 
相關問題