Obrigado por visitar a devmedia.com.br!

Precisamos de você para divulgar nossos vídeos e cursos gratuitos para a comunidade.

Se você gosta da devmedia.com.br por favor dê-nos o seu clique para o Google+ e ajude outros desenvolvedores ao redor do mundo.



Obrigado por seu apoio!
Equipe DevMedia

sair sem compartilhar (x)
DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:

  #Este é um post fechado

Este post está disponível para assinantes da Java Magazine DIGITAL ou para quem possui Créditos DevMedia. Clique aqui para saber mais sobre como abrir este post!



Artigo Java Magazine 26 - Números em Java

Artigo publicado pela Java Magazine edição 26.

BRK##: 17 - 20

Esse artigo faz parte da revista Java Magazine edição 26. Clique aqui para ler todos os artigos desta edição

Números em Java

Tipos, conversão e formatação numérica

 

Aprenda a utilizar as classes relacionadas co números fornecidas pelo J2SE para formatar a entrada e a saída de valores numéricos

 

A manipulação de números é uma das características fundamentais de qualquer linguagem de programação. Como não poderia deixar de ser, Java fornece vários recursos avançados nesta área – mas devido a suas raízes orientadas a objetos o faz de modo diferente da maioria das outras linguagens.

Este artigo apresenta as principais facilidades da linguagem Java e sua biblioteca padrão de classes para a manipulação de números – indo desde o básico até os recursos avançados como aritmética de precisão ilimitada e edição formatada. A Figura 1 ilustra as principais classes para a manipulação de números fornecidas com o J2SE (exceto pelas classes de exceções e de erros).

Na primeira parte, são apresentados fundamentos da manipulação de números por computadores, fornecendo ao leitor subsídios para escolher entre os vários tipos numéricos oferecidos por Java. Na segunda parte, são abordadas questões mais do dia-a-dia do programador, como a geração de números aleatórios e a formatação numérica.

 

 

 

 Figura 1. Diagrama UML com as principais classes e pacotes do J2SE 5.0 relacionados om números; as classes em azul são as mais comumentes utilizadas.

 

Tipos de dados numéricos

Os tipos de dados numéricos, independentemente da linguagem, podem ser ididos em quatro categorias:

  1. Números inteiros. Não têm parte decimal (ou fracionária) e normalmente são manipulados diretamente pela CPU do computador.
  2. Números em ponto flutuante. Possuem uma parte decimal ou fracionária; são manipulados diretamente por CPUs que incluam um co-processador numérico ou um componente equivalente; no arredondamento e precisão limitada.
  3. Números em decimal-compactado. Não apresentam problemas de arredondamento, ou melhor, o fazem da forma como estamos habituados na representação decimal, e não na representação binária como é feito para números de ponto flutuante.
  4. Números de precisão ilimitada. São manipulados por algoritmos baseados nos recursos de carry (vai-um) presentes em CPUs, para simular números maiores do que podem ser manipulados diretamente pelos processadores.

 

   Pensando em eficiência, queremos usar em nossos programas a menor quantidade possível de bytes capaz de armazenar um número. Por isso, as linguagens de programação modernas fornecem vários tipos de números inteiros ou de ponto flutuante, com variados graus de precisão. Quanto mais preciso for um número, mais extensa a faixa de valores que pode ser armazenada nele, e mair a quantidade de bytes ocupada.

Se possível, devem ser utilizados números inteiros, que são os mais eficientes em uso de CPU e memória. Caso se necessite de números com parte decimal, pode ser utilizada qualquer uma das outras categorias. Os números de ponto flutuante são os mais eficientes, entretanto eles não são indicados para lidar com valores monetários. Um dos motivos é porque a representação binária gera dízimas periódicas para alguns números com representação exata em decimal, podendo provocar erros de arredondamento. A Listagem 1 apresenta um exemplo deste problema (ao final desta e de outras listagens é demonstrada a execução e alguns resultados do exemplo).

A ciência já lidava com o problema do “erro” em valores numéricos bem antes dos computadores existirem, pois qualquer medição tem uma margem de erro. Então os valores nunca podem ser tomados como sendo exatos. No colégio, por exemplo, estudamos o conceito de “algarismos duvidosos” como uma das formas de a ciência lidar com erros.

Na maioria dos casos, práticas simples como evitar comparações de igualdade envolvendo números de ponto flutuante, ou fazer comparações dentro de uma “faixa aceitável”, evita os problemas. Por exemplo, em vez de testar se um números é igual a 0,5 poderíamos testar se ele está entre 0,49 e 0,51. ao invés de verificar se é maior ou igual a 7,0 tente averiguar se é maior ou igual a 0,65. a idéia é usar valores que poderiam ser arrendondados para o valore desejado.



ATENÇÃO! A exibição deste artigo foi interrompida.


  #Este é um post fechado

Este post está disponível para assinantes da Java Magazine DIGITAL ou para quem possui Créditos DevMedia. Clique aqui para saber mais sobre como abrir este post!







    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!



Autor
Fernando Lozano

é consultor independente, ativista do software livre e professor da Faculdade Metodista Bennett, além de autor do livro “Java em GNU/Linux” (Editora Alta Books). É detentor de certificações da Sun, IBM, Microsoft e Red Hat, sendo uma espécie de “agente duplo” nas várias tribos.


Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
0   0
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]
Este post está disponível para assinantes da Java Magazine DIGITAL ou para quem possui Créditos DevMedia.

  Conheça os planos de créditos DevMedia e visualize esse post agora mesmo!

Plano conveniência – Neste plano este post custa R$ 4,90 (Compre agora)
Esse plano permite que você compre somente um post, pagando por ele seu preço sem desconto.

Plano ocasional: Aqui este post custa: R$ 1,96 (assinante) ou R$ 2,45 (não-assinante)
Este plano é ideal para quem tem interesse em mais de um post. Você compra um mínimo de R$ 50,00 em créditos e ganha, em média, 50% de desconto no preço do post. Compre Créditos agora!

Assinatura de Créditos (Plano econômico) – Aqui este post custa R$ 1,47
Este plano é ideal para quem tem interesse em muitos posts. Com esse plano você compra R$ 180,00 em créditos e ganha, em média, 80% de desconto no preço do post. Assine este plano agora!

> Saiba mais sobre o Sistema de Créditos DevMedia
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03