Este é um post disponível para assinantes MVPou para quem possui Créditos DevMedia. Clique aqui para saber mais!
Artigo Java Magazine 26 - Números em Java
Artigo publicado pela Java Magazine edição 26.
Você não gostou da qualidade deste conteúdo?
(opcional) Você gostaria de comentar o que não lhe agradou?

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.

Tipos de dados numéricos
Os tipos de dados numéricos, independentemente da linguagem, podem ser divididos em quatro categorias:
- Números inteiros. Não têm parte decimal (ou fracionária) e normalmente são manipulados diretamente pela CPU do computador.
- 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.
- 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.
- 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 "
Este é um post disponível para assinantes MVPou para quem possui Créditos DevMedia. Clique aqui para saber mais!
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.



