Imagem do artigo Tipos de dados primitivos em Java: double

5.6. Tipos de dados primitivos em Java: double

Página 27 | Ouça em áudio

Tipos de Dados Primitivos em Java: Double

Tipos de Dados Primitivos em Java: Double

A linguagem Java possui diversos tipos de dados primitivos, cada um adequado para diferentes tipos de tarefas. Dentre eles, o tipo double é um dos mais importantes quando se trata de representar números com casas decimais, ou seja, números reais. Neste capítulo, vamos explorar a fundo o tipo de dado primitivo double, entender quando usá-lo, suas características e limitações.

O que é o Tipo Primitivo double?

O tipo primitivo double em Java é utilizado para armazenar números reais de dupla precisão, seguindo o padrão IEEE 754. Isso significa que ele pode representar números fracionários com uma grande quantidade de dígitos, tornando-o adequado para cálculos científicos e matemáticos que exigem alta precisão. Um valor double ocupa 64 bits (8 bytes) de memória, o que permite representar números na faixa de aproximadamente 4.9e-324 a 1.7976931348623157e+308.

Declaração e Inicialização de uma Variável double

Para declarar uma variável do tipo double em Java, você simplesmente precisa especificar o tipo seguido pelo nome da variável:

double pi = 3.141592653589793;

A variável pi agora contém o valor de π com uma precisão bastante alta. É importante notar que o separador decimal em Java é o ponto, e não a vírgula, que é comum em alguns países.

Operações com double

Você pode realizar todas as operações matemáticas básicas com variáveis do tipo double, como adição, subtração, multiplicação e divisão. Além disso, a classe Math fornece muitos métodos úteis para operações matemáticas avançadas, como exponenciação, logaritmos, raízes quadradas, etc.

Precisão e Problemas com o Tipo double

Apesar da alta precisão do tipo double, ele não é capaz de representar todos os números fracionários exatamente devido à maneira como os números são armazenados em binário. Isso pode levar a problemas de arredondamento, que são particularmente evidentes em operações financeiras, onde a precisão até a última casa decimal é crucial. Por essa razão, para cálculos financeiros, é recomendado usar a classe BigDecimal, que oferece controle total sobre a precisão e o arredondamento.

Conversões e Casting

Em Java, você pode converter outros tipos primitivos para double automaticamente, um processo conhecido como "widening primitive conversion". Por exemplo, se você tem um valor inteiro e o atribui a uma variável double, o valor é convertido automaticamente:

int numero = 100;
double valor = numero; // valor agora é 100.0

No entanto, converter um double para um tipo que ocupa menos bits, como int, requer um "casting" explícito, pois pode haver perda de informação:

double pi = 3.141592653589793;
int aproximacaoPi = (int) pi; // aproximacaoPi agora é 3

Este "casting" descarta qualquer informação após o ponto decimal, arredondando o valor para baixo.

Comparando Valores double

Comparar valores do tipo double pode ser complicado devido aos problemas de precisão mencionados anteriormente. Em vez de usar o operador de igualdade (==), geralmente é melhor definir um pequeno valor de tolerância e verificar se a diferença absoluta entre dois valores é menor do que essa tolerância:

double a = 0.1 + 0.2;
double b = 0.3;
double tolerancia = 0.0001;
if (Math.abs(a - b) < tolerancia) {
    // Considerados iguais
}

Limitações do Tipo double

Além dos problemas de arredondamento, o tipo double também tem limitações em termos de representar valores especiais, como "infinito" e "NaN" (Not a Number). Estes são usados para representar o resultado de operações indefinidas ou que excedem o alcance do tipo double. Embora úteis em algumas circunstâncias, eles podem causar comportamentos inesperados se não forem tratados corretamente.

Quando Usar o Tipo double?

O tipo double é mais adequado para cálculos científicos, engenharia ou qualquer aplicação que necessite de uma grande quantidade de dígitos após o ponto decimal. No entanto, para aplicações que requerem precisão absoluta, como cálculos monetários, outros tipos de dados, como BigDecimal, são mais apropriados.

Conclusão

O tipo primitivo double é uma ferramenta poderosa na caixa de ferramentas de um programador Java, mas seu uso deve ser feito com cautela e compreensão de suas limitações. Ao entender como e quando usar o tipo double, você pode evitar muitos erros comuns e garantir que seus programas se comportem da maneira esperada.

Agora responda o exercício sobre o conteúdo:

_Qual das seguintes afirmações sobre o tipo primitivo `double` em Java é verdadeira?

Você acertou! Parabéns, agora siga para a próxima página

Você errou! Tente novamente.

Imagem do artigo Tipos de dados primitivos em Java: char

Próxima página do Ebook Gratuito:

28Tipos de dados primitivos em Java: char

6 minutos

Ganhe seu Certificado deste Curso Gratuitamente! ao baixar o aplicativo Cursa e ler o ebook por lá. Disponível na Google Play ou App Store!

Disponível no Google Play Disponível no App Store

+ de 6,5 milhões
de alunos

Certificado Gratuito e
Válido em todo o Brasil

48 mil exercícios
gratuitos

4,8/5 classificação
nas lojas de apps

Cursos gratuitos em
vídeo, áudio e texto