Ir para conteúdo
Fórum Script Brasil
  • 0

Parseint()


Denis_Rave

Pergunta

4 respostass a esta questão

Posts Recomendados

  • 0

Denis_Rave:

Não funciona porque essa função tem como finalidade retornar um número inteiro.

"08" e "09" não são números inteiros. São números inteiros: "8" e "9".

É igual a você tentar iniciar uma conta com o "0".

Não sei se pude lhe explicar bem.

Mais dúvidas? Pergunte. :D

Link para o comentário
Compartilhar em outros sites

  • 0

na verdade, "08" é um inteiro SIM

O que acontece é que em JavaScript há considerações (regras) quanto ao sistema de numeração usado.

Quando um numero é precedido de um 0 (exemplo: 055 [octal] difere de 55 [decimal]) é automaticamente aceito como na base OCTAL. Logo, 01, 02, ...07 são OCTAIS que a função parseInt converte pra decimal. O numero "08" não é definido no sistema OCTAL por isso há um erro, fazendo a função retornar 0.

Por exemplo:

alert(parseInt("371"));   //371 no Sistema DECIMAL
alert(parseInt("0563"));           //371 no sistema OCTAL

existem outras peculiaridades dessa função... se você quer realmente passar "08" como parâmetro você pode usar a função assim:

parseInt("numero", base)

No seu caso, seria assim: parseInt("08", 10)

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...