Javascript – Pegadinha no parseInt()
Postado por: Luiz Paulo emJá estamos cansados de saber que javascript é totalmente dinâmico e podemos mudar facilmente o tipo das variáveis.
Uma das facilidades em javascript é a conversão de variáveis em inteiro, com a função parseInt(). Só que essa função tem uma pegadinha que pode atrapalhar bastante aos desatentos.
Sua sintaxe é bem simples como segue:
var number = "123456348965"; var integerNumber = parseInt(number); alert(integerNumber); //123456348965
Nesse caso, tranquilo! Nenhum problema. Mas se, por exemplo, quisermos converter uma string “010″ teremos problemas. Vejam o exemplo:
var number = "010"; var integerNumber = parseInt(number); alert(integerNumber); //8
Isso acontece pois o número é automaticamente detectado como Octal. Para resolver esse problema, a função parseInt pode receber 2 parâmetros.
parseInt(string, radix)
Onde:
string = String a ser transformada
radix = Numeral que você quer se basear (de 2 a 36)
Veja então como fica a solução para este problema:
var number = "010"; var integerNumber = parseInt(number, 10); //10 = base decimal alert(integerNumber); //10
Pegadinha desvendada e problema resolvido!













Bom post Luizão .. vlw.
Ótimo post! Não sabia dessa!
Putz, esta para mim é novidade, sacanagem a função assumir 2 bases numéricas por causa de um zero a esquerda
Estava lendo isso quase agora num manual
Caramba! São 9 anos que eu trabalho com JavaScript e não sabia dessa pegadinha!
Muito obrigado por nos informar!
Nossa cara, não sabia dessa não … Valeu, muito bom!!!
Pow, valeu cara!! Tava tendo esse problema e o sistema dava um resolvendo maluco… Primeiro link que entrei foi o seu e resolveu meu problema.
Abraços