5.6. Tipos de dados primitivos em Java: double

Página 27

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.

Now answer the exercise about the content:

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

You are right! Congratulations, now go to the next page

You missed! Try again.

Next page of the Free Ebook:

285.7. Tipos de dados primitivos em Java: char

Earn your Certificate for this Course for Free! by downloading the Cursa app and reading the ebook there. Available on Google Play or App Store!

Get it on Google Play Get it on App Store

+ 6.5 million
students

Free and Valid
Certificate with QR Code

48 thousand free
exercises

4.8/5 rating in
app stores

Free courses in
video, audio and text