5

I have

var x = "0100";

parseInt(x); // returns 100;

Is there a way I can retain the leading 0s and yet convert to number in Javascript

user544079
  • 16,109
  • 42
  • 115
  • 171

2 Answers2

6

Unfortunately it's not possible but I have a solution that can help you, is to define a class from where you can get the value as integer and when you call the toString method it returns the value with leading zeros

function Num ()
{
    this.value = arguments[0];
    this.val = this.valueOf = function () 
    {
       return parseInt(this.value);
    }
    this.toString = function()
    {
       return this.value;
    }
}

Now what you can do is to define a new number like this :

var x = new Num("00011");
x.val() // returns 11
x.toString() // returns "00011"
Khalid
  • 4,730
  • 5
  • 27
  • 50
5

No.

Numbers don't have leading zeroes; that's a display issue, not a matter of a number's internal representation.

To display the number with leading zeroes, see here.

Community
  • 1
  • 1
Robert Harvey
  • 178,213
  • 47
  • 333
  • 501