Javascript Error: ParseInt fails when supplied with large numbers

ParseInt returns 1 for when passed any number greater or equal to 1e+21.

var x = 1.0e+2;
console.log( x == 1e+2 );
console.log( parseInt( x, 10 ) == 100 );
console.log( parseFloat( x ) == 100 );
 
var x = 1.0e+21;
console.log( x == 1e+21 );
console.log( parseInt( x, 10 ) == 1 );
console.log( parseFloat( x ) == 1e+21 );

What do you think the problem is?
I think the problem by be because numbers 1e+21 and greater are represented as strings.
ParseInt might only be looking at valid numbers to parse the number to into an integer. Since e in ’1e21′ is not a number, 1 is the item returned.

Demo: jsbin.com demo

Update:
V8 Issue Page

Be Sociable, Share!

Larry Battle

Hello, I'm Larry Battle and I love to program, fix problems and discover new technologies. Check out my stackoverflow and github accounts. I also do book reviews on amazon.com. I'm not the best of writers but I do enjoy spreading my knowledge through my short blogs at bateru.com/news. So please leave some feedback. It would be greatly appreciated.

More Posts - Website

Follow Me:
Twitter

FireStats icon Powered by FireStats