logo

Float versus Java duplo

Em Java, Java.

Existem dois tipos de dados de ponto flutuante:

  • tipo de dados flutuante
  • tipo de dados duplo

Ambos, float e double representam os números de ponto flutuante que armazenam os valores decimais.

Tipo de dados de ponto flutuante Valores Tamanho (bits)* Requisito de armazenamento (bytes) Valor padrão Precisão Dígitos decimais Faixa Precisão
flutuador Ponto flutuante IEEE 754 32 4 0,0f Solteiro 6 dígitos decimais 3.4e-038 a 3.4e+038 Baixo
dobro Ponto flutuante IEEE 754 64 8 0,0d Dobro 15 dígitos decimais 1,7e-308 a 1,7e+308 Alto

*Os bits de tamanho incluem o seguinte:

Pedaços flutuador dobro
Sinal 1 1
Expoente 8 onze
Mantissa 23 52

Precisão única: Isso consiste de um bit de sinal (S), oito bits de expoente (E) e vinte e três bits de mantissa (M).

Dupla precisão: Isso consiste de um bit de sinal (S), onze bits de expoente (E) e cinquenta e dois bits de mantissa (M).

Float versus Java duplo

tipo de dados flutuante

É um número de ponto flutuante IEEE 754 (padrão para aritmética de ponto flutuante) de precisão simples de 32 bits. Isso significa que fornece precisão de 6 a 7 dígitos decimais. É usado se quisermos usar a memória de forma eficaz porque ocupa menos memória em comparação com o tipo de dados duplo. Para definir um valor flutuante, devemos usar um sufixo f ou F. Seu valor padrão é 0,0f. Por padrão, os números flutuantes são tratados como duplos em Java.

alfabeto numerado

Por exemplo, se definirmos um número flutuante como:

 float height = 167.7 

A declaração acima da variável float fornece o erro de compilação. Podemos corrigir o erro adicionando um sufixo f ou F.

 float height = 167.7f or float height = 167.7F 

tipo de dados duplo

O tipo de dados duplo é um número de ponto flutuante IEEE 754 de precisão dupla de 64 bits. Isso significa que fornece precisão de 15 a 16 dígitos decimais. Consome mais memória em comparação com o tipo de dados float. É usado para armazenar valores decimais. Seu valor padrão é 0,0d. É opcional adicionar o sufixo d ou D. Por exemplo:

 double price = 987.90D or double price = 987.90d or double price = 987.90 

tipo de dados float vs double

O tipo de dados double é mais preciso que o tipo de dados float. A tabela a seguir resume as diferenças entre os tipos de dados float e double.

Base tipo de dados flutuante tipo de dados duplo
Memória Isso ocupa 4 bytes. Isso ocupa 8 bytes.
Precisão Sua precisão é baixo . Sua precisão é alto .
Precisão Segue-se precisão simples (6-7 dígitos decimais). Segue-se dupla precisão (15-16 dígitos decimais).
Palavra-chave usada O flutuador palavra-chave é usada para definir um número flutuante. O dobro palavra-chave é usada para definir um número de precisão dupla.
Classe de wrapper Sua classe wrapper é java.lang.Float. Sua classe wrapper é java.lang.Double.
Tipo de dados padrão Java não o usa como número de ponto flutuante padrão. É o padrão tipo de dados para números de ponto flutuante.
Perda de dados Haverá sem perda de dados se convertermos float em double. Haverá perda de dados se convertermos double em float.
Usos Deve ser usado onde menos precisão é necessária e o armazenamento é uma restrição. É usado onde mais precisão é necessário e também requer mais precisão.
Sufixo Ele usa F ou f como sufixo. É obrigatório adicionar um sufixo se você estiver declarando uma variável flutuante. Ele usa d ou D como sufixo. É opcional adicionar um sufixo se você estiver declarando uma variável dupla.
Representação 28,96f ou 28,96°F 12,5 ou 12,5D ou 12,5d

Semelhanças entre tipos de dados float e double

  • Os números reais podem ser representados por ambos os tipos de dados.
  • Os tipos de dados float e double não são precisos, portanto, são valores aproximados.

Qual tipo de dados de ponto flutuante em Java devemos usar?

double é mais preciso que float. Portanto, se for necessário um resultado mais preciso e exato, use o dobro. Outra razão para usar double é que se o número não se enquadrar no intervalo oferecido pelo float, use double. Devemos usar float se tivermos restrição de memória porque ocupa metade do espaço do que double.

Recomendamos que você use double over float se não houver restrição de memória e espaço e quando for necessária mais precisão. É aconselhável usar o float, se a memória for uma preocupação e o resultado em 16 dígitos decimais de precisão não for necessário.

Os dois seguintes Programas Java mostram claramente as diferenças entre os tipos de dados float e double.

FloatDataTypeExample.java

 public class FloatDataTypeExample { public static void main(String args[]) { float x = 1.0f, y = 3.0f; //defining x and y as float float z = x / y; //divides x by y and stores the result in the variable z System.out.println('x/y = ' + z); //prints the result } } 

Saída:

 x/y = 0.33333334 

DoubleDataTypeExample.java

 public class DoubleDataTypeExample { public static void main(String args[]) { double x = 1.0, y = 3.0; //defining x and y as double double z = x / y; //divides x by y and stores the result in the variable z System.out.println('x/y = ' + z); //prints the result } } 

Saída:

 x/y = 0.3333333333333333 

Através dos dois exemplos acima, fica claro que o tipo de dados duplo ocupa mais memória para armazenar um número de precisão dupla e também fornece resultados mais precisos com até 16 dígitos decimais. Embora o tipo de dados float ocupe menos espaço para armazenar números de precisão simples e forneça resultados de até 6 casas decimais.