我正在嘗試做一個數字自動生成器。但我在如何將數字強制爲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 />');; }
請幫忙。
我正在嘗試做一個數字自動生成器。但我在如何將數字強制爲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 />');; }
請幫忙。
的whooo!我得到了一個餡餅::嘗試它
for(i=1;i<=100;i++) {
//var i = x++;
var test = i.toPrecision(8).replace("\.","");
jQuery('.generated_table').append(test+'<br />');;
}
使用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
檢查出的一些鏈接到各種printf風格功能的Javascript這太問題:Javascript printf/string.format
var randNum = "";
var MAX_LENGTH = 8;
while(randNum.toString().length < MAX_LENGTH){
var temp = Math.floor(Math.random() * 10);
randNum += temp.toString();
}
alert(randNum);
你的意思是你想他們零填充,使他們總是顯示爲8個字符?例如23應該寫成00000023? – 2011-02-12 13:31:35
整數? – 2011-02-12 13:31:46
另外,您在循環內設置了迭代器變量。你確定你想這麼做嗎? – 2011-02-12 13:32:54