logo

Float Vs Double Java

A Java, Java.

Hi ha dos tipus de tipus de dades de coma flotant:

  • tipus de dades float
  • doble tipus de dades

Ambdós, float i double representen els nombres de coma flotant que emmagatzemen els valors decimals.

Tipus de dades de coma flotant Valors Mida (bits)* Requisit d'emmagatzematge (bytes) Valor per defecte Precisió Dígits decimals Interval Precisió
flotar IEEE 754 de coma flotant 32 4 0,0f Solter 6 dígits decimals 3.4e-038 a 3.4e+038 baix
doble IEEE 754 de coma flotant 64 8 0,0 d Doble 15 dígits decimals 1.7e-308 a 1.7e+308 Alt

*Els bits de mida inclouen el següent:

Bits flotar doble
Signe 1 1
Exponent 8 11
Mantissa 23 52

Precisió única: Consisteix en un bit de signe (S), vuit bits exponents (E) i vint-i-tres bits de mantissa (M).

Doble precisió: Consisteix en un bit de signe (S), onze bits exponents (E) i cinquanta-dos bits de mantissa (M).

Float Vs Double Java

tipus de dades float

És un nombre de coma flotant IEEE 754 (estàndard per a l'aritmètica de coma flotant) de precisió única de 32 bits. Vol dir que dóna una precisió de 6-7 dígits decimals. S'utilitza si volem utilitzar la memòria de manera eficaç perquè necessita menys memòria en comparació amb el tipus de dades doble. Per definir un valor flotant, hem d'utilitzar un sufix f o F. El seu valor per defecte és 0,0f. Per defecte, els números flotants es tracten com a dobles a Java.

Per exemple, si definim un nombre flotant com:

 float height = 167.7 

La declaració anterior de la variable float dóna l'error de compilació. Podem corregir l'error afegint un sufix f o F.

 float height = 167.7f or float height = 167.7F 

doble tipus de dades

El tipus de dades doble és un nombre de coma flotant IEEE 754 de doble precisió de 64 bits. Vol dir que proporciona una precisió de 15-16 dígits decimals. Consumeix més memòria en comparació amb el tipus de dades flotant. S'utilitza per emmagatzemar valors decimals. El seu valor per defecte és 0,0d. És opcional afegir el sufix d o D. Per exemple:

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

tipus de dades float vs double

El tipus de dades doble és més precís que el tipus de dades flotant. La taula següent resumeix les diferències entre els tipus de dades float i double.

cadena java a int
Base tipus de dades float doble tipus de dades
Memòria Ocupa 4 bytes. Ocupa 8 bytes.
Precisió La seva precisió és baix . La seva precisió és alt .
Precisió Segueix d'única precisió (6-7 dígits decimals). Segueix doble precisió (15-16 dígits decimals).
Paraula clau utilitzada El flotar La paraula clau s'utilitza per definir un nombre flotant. El doble La paraula clau s'utilitza per definir un nombre de doble precisió.
Classe d'embolcall La seva classe d'embolcall és java.lang.Float. La seva classe d'embolcall és java.lang.Doble.
Tipus de dades per defecte Java no l'utilitza com a número de coma flotant predeterminat. Això és el per defecte tipus de dades per a nombres de coma flotant.
Pèrdua de dades Hi haurà sense pèrdua de dades si convertim float en double. Hi haurà pèrdua de dades si convertim double en float.
Usos S'ha d'utilitzar on menys precisió és necessari i l'emmagatzematge és una limitació. S'utilitza on més precisió es requereix i també requereix més precisió.
Sufix S'utilitza F o f com a sufix. És obligatori afegir un sufix si declara una variable flotant. S'utilitza d o D com a sufix. És opcional afegir un sufix si declara una variable doble.
Representació 28.96f o 28,96 F 12.5 o 12.5D o 12.5d

Similituds entre el tipus de dades float i double

  • Els nombres reals es poden representar amb els dos tipus de dades.
  • Tant els tipus de dades float com les dobles no són precisos, per tant, són un valor aproximat.

Quin tipus de dades de coma flotant a Java hem d'utilitzar?

double és més precís que float. Per tant, si es requereix un resultat més precís i precís, utilitzeu el doble. Un altre motiu per utilitzar el doble és que si el nombre no s'ajusta al rang que ofereix el flotador, feu servir el doble. Hauríem d'utilitzar float si tenim una restricció de memòria perquè ocupa mig espai que el doble.

Us recomanem que utilitzeu el doble sobre flotant si no hi ha cap limitació de memòria i espai i quan calgui més precisió. S'aconsella anar amb el flotador, si la memòria és una preocupació, i no es requereix el resultat en 16 dígits decimals de precisió.

Els dos següents Programes Java mostrar clarament les diferències entre el tipus de dades flotant i doble.

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 } } 

Sortida:

 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 } } 

Sortida:

 x/y = 0.3333333333333333 

A través dels dos exemples anteriors, queda clar que el tipus de dades doble necessita més memòria per emmagatzemar un nombre de doble precisió i també ofereix el resultat més precís fins a 16 dígits decimals. Tot i que el tipus de dades flotant ocupa menys espai per emmagatzemar números de precisió única i dóna resultats fins a 6 decimals.