0

I am trying to make an auto-generator of numbers. but I'm having a problem on how to forced the number to 8 digit.


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 />');;
}

Please help.

Mxyk
  • 10,678
  • 16
  • 57
  • 76
Jorge
  • 5,610
  • 18
  • 47
  • 67

4 Answers4

2

Use toPrecision:

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

If you meant preceding a number with leading zero's:

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

You can also make a Number.prototype function of that:

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

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

Just to be complete: a more precise way to print any (number of) leading character(s) to any number may be:

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
KooiInc
  • 119,216
  • 31
  • 141
  • 177
1

Whooo!!! i got anser :: Try it

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

  var test = i.toPrecision(8).replace("\.","");     
  jQuery('.generated_table').append(test+'<br />');;
}
Manish Trivedi
  • 3,481
  • 5
  • 23
  • 29
0

Check out this SO question for some links to various printf-style functions for Javascript: Javascript printf/string.format

Community
  • 1
  • 1
Simon Whitaker
  • 20,506
  • 4
  • 62
  • 79
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);
daniel
  • 1,148
  • 1
  • 13
  • 20