Tipo de dados flutuante e duplo em Java

Os tipos de dados float e double são usados ​​para armazenar números reais ou de ponto flutuante em Java, mas um tipo de dados double é mais preciso do que float. double é o tipo de dados padrão para números de ponto flutuante.

Para armazenar números de ponto flutuante com precisão

Um float é um ponto flutuante IEEE 754 de 32 bits, enquanto um duplo é um ponto flutuante IEEE 754 de 64 bits. Float tem um alcance inferior em comparação com o dobro.

No exemplo dado abaixo, temos d do tipo de dados double, que é obtido dividindo duas variáveis ​​double d1 e d2. Da mesma forma, temos f1 resultado quando duas variáveis ​​flutuantes f1 e f2 são divididas. No caso de double, não há necessidade de usar o sufixo d ou D, enquanto para dados do tipo float precisamos usar o sufixo f ou F como por padrão, todos reais os números são considerados double em Java.

Na saída, podemos ver que a precisão e exatidão da variável double d é mais do que a variável float f. Sabemos que double é um tipo de dados maior do que float, por isso precisamos fazer down-cast. Para typecast double para float, precisamos mencionar a palavra-chave float entre colchetes antes do valor decimal.

É visível na saída que, ao converter a variável double em float, ela perde dados e precisão, pois estamos armazenando um tipo de dados maior em um tipo de dados menor. Portanto, double consome mais memória para armazenar números flutuantes de precisão dupla e fornece resultados precisos.

public class Test {
    public static void main(String args[]){
        double d1 = 10.0;
        double d2 = 3.0;
        double d = d1/d2;
        System.out.println("double d : "+d);

        float f1 = 10.0f;
        float f2 = 3.0f;
        float f = f1/f2;
        System.out.println("float f : "+f);

        float f3 = (float) d;
        System.out.println("float f3 : "+f3);

        double d3 = f;
        System.out.println( "double d3 : "+d3);

    }
}

Produção:

double d : 3.3333333333333335
float f : 3.3333333
float f3 : 3.3333333
double d3 : 3.3333332538604736

A diferença entre os dois tipos de dados pode ser ilustrada com os dados tabulares fornecidos.

Tipo de dados Precisão Tamanho Default Tipo de dados Valor padrão Sufixo Classe Wrapper Perda de dados Palavra-chave
Flutuador Precisão única (6-7 dígitos decimais) 32 bits Não 0.0f Use f ou F. Precisamos adicionar este sufixo porque, por padrão, os números flutuantes são explicitamente tratados como duplos java.lang.Float Sem perda de dados ao converter float em double A palavra-chave float é usada para o tipo float
Dobro Precisão dupla (15-16 dígitos decimais) 64 bits Sim 0.0d Use d ou D. Opcional para usar sufixo java.lang.Double Perda de dados ao converter double para float A palavra-chave double é usada para definir um número de precisão dupla

Float e double são usados ​​para representar números reais. Ambos os tipos de dados não são precisos; eles são tipos aproximados. Quando precisamos de um resultado exato e preciso, devemos buscar o dobro. Se houver qualquer restrição de memória e espaço, a flutuação deve ser considerada.

Artigo relacionado - Java Double

  • Converter Int para Double em Java
  • Artigo relacionado - Java Float

  • Como arredondar um duplo para dois lugares decimais em Java
  • Converter Double to String em Java