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).
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.