Javascript, why treated as octal

javascript

Solution

If you receive your parameters as string objects, it should work to use

 parseInt(string, 10)

to interpret strings as decimal, even if they are beginning with 0.

In your test, you pass the parseInt method a number, not a string, maybe that's why it doesn't return the expected result.

Try

 parseInt('0000022115', 10)

instead of

parseInt(0000022115, 10)

that does return 221115 for me.

Problem

I'm passing as parameter an id to a javascript function, because it comes from UI, it's left zero padded. but it seems to have (maybe) "strange" behaviour? ``` console.log(0000020948); //20948 console.log(0000022115); //9293 which is 22115's octal console.log(parseInt(0000022115, 10)); // 9293 which is 22115's octal console.log(0000033959); //33959 console.log(20948); //20948 console.log(22115); //22115 console.log(33959); //33959 ``` how can I make sure they are parsing to right numebr they are? (decimal) EDIT: just make it clearer: those numbers come from the server and are zero padded strings. and I'm making a delete button for each one. like: ``` function printDelButton(value){ console.log(typeof value); //output string return '<a href="#" onclick="deleteme('+value+')"><img src="images/del.png"></a>' } and function printDelButton(value){ console.log(typeof value); //output numeric console.log(value); //here output as octal .... :S } ``` I tried : ``` console.log(parseInt(0000022115, 10)); // 9293 which is 22115's octal ``` and still parsing as Octal

Original source

Related problems