Javascript – Pegadinha no parseInt()

Postado por: Luiz Paulo em

Já 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!

Posts Relacionados

Confira também outros artigos interessantes postados aqui no blog.

Gostou desse post?

Assine o nosso Feed RSS, siga-nos no Twitter, ou simplesmente nos recomende a seus amigos!

Sobre Luiz Paulo

Luiz Paulo dos Prazeres é desenvolvedor web desde 2000. Atualmente trabalha na Automatos junto à equipe de site desenvolvendo projetos web2.0 e utilizando como server-side a linguagem java.

10 Responses to “Javascript – Pegadinha no parseInt()”

  1. Fabio disse:

    Bom post Luizão .. vlw.

  2. Ótimo post! Não sabia dessa!

  3. Putz, esta para mim é novidade, sacanagem a função assumir 2 bases numéricas por causa de um zero a esquerda

  4. Édipo disse:

    Estava lendo isso quase agora num manual

  5. Edy Segura disse:

    Caramba! São 9 anos que eu trabalho com JavaScript e não sabia dessa pegadinha!
    Muito obrigado por nos informar!

  6. Sandro Alves Peres disse:

    Nossa cara, não sabia dessa não … Valeu, muito bom!!!

  7. Cassiano disse:

    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

  8. Julio Vedovatto disse:

    Excelente dica pros iniciantes.

    Isto é um erro muito comum, acabei descobrindo por conta própria na época que tive esses problemas. Considero isso o básico que deve ser aprendido para qualquer um que queira inventar de fazer javascript.

    Cai aqui por acaso, mas foi bom pra eu ver que álguem de dispôs a colocar fácil a solução!

    Parabéns Luiz!

    []‘s

  9. Celso Masotti disse:

    Esta dica foi ótima! =)

  10. Kelsy disse:

    Muito obrigada pela solução! Tive esse problema ao trabalhar com datas no formato ddmmaaaa ( 01022006 , por exemplo) e não estava entendendo por que não estava funcionado. Valeu mesmo!

Leave a Reply