logo

Float vs Double Java

V Jave, Java.

Existujú dva typy dátových typov s pohyblivou rádovou čiarkou:

  • float Typ údajov
  • dvojitý typ údajov

Obidve, float aj double predstavujú čísla s pohyblivou rádovou čiarkou, v ktorých sú uložené desiatkové hodnoty.

Typ údajov s pohyblivou rádovou čiarkou hodnoty Veľkosť (bity)* Požiadavka na úložisko (bajty) Predvolená hodnota Presnosť Desatinné číslice Rozsah Presnosť
plavák IEEE 754 s pohyblivou desatinnou čiarkou 32 4 0,0f Slobodný 6 desatinných miest 3.4e-038 až 3.4e+038 Nízka
dvojitý IEEE 754 s pohyblivou desatinnou čiarkou 64 8 0,0 d Dvojité 15 desatinných číslic 1,7e-308 až 1,7e+308 Vysoká

* Veľkosť bitov zahŕňa nasledujúce:

Bity plavák dvojitý
Podpísať 1 1
Exponent 8 jedenásť
Mantisa 23 52

Single-Precision: Skladá sa to z jeden znamienko bit (S), osem exponent bity (E) a dvadsaťtri bity mantisy (M).

Dvojitá presnosť: Skladá sa to z jeden znamienko bit (S), jedenásť exponent bity (E) a päťdesiat dva bity mantisy (M).

Float vs Double Java

float Typ údajov

Ide o 32-bitové číslo s pohyblivou rádovou čiarkou s jednou presnosťou IEEE 754 (štandard pre aritmetiku s pohyblivou rádovou čiarkou). To znamená, že dáva presnosť 6-7 desatinných miest. Používa sa, ak chceme efektívne využívať pamäť, pretože zaberá menej pamäte v porovnaní s dvojitým typom údajov. Na definovanie floatovej hodnoty musíme použiť príponu f alebo F. Jej predvolená hodnota je 0,0f. V predvolenom nastavení sú čísla s pohyblivou čiarou v jazyku Java považované za dvojité.

Napríklad, ak definujeme číslo s pohyblivou čiarou ako:

 float height = 167.7 

Vyššie uvedená deklarácia premennej float udáva chybu kompilácie. Chybu môžeme opraviť pridaním prípony f alebo F.

 float height = 167.7f or float height = 167.7F 

dvojitý typ údajov

Typ údajov double je 64-bitové číslo s pohyblivou rádovou čiarkou IEEE 754 s dvojitou presnosťou. To znamená, že dáva presnosť 15-16 desatinných miest. V porovnaní s dátovým typom float spotrebuje viac pamäte. Používa sa na ukladanie desatinných hodnôt. Jeho predvolená hodnota je 0,0 d. Je voliteľné pridať príponu d alebo D. Napríklad:

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

float vs double Data Type

Typ údajov double je presnejší ako typ údajov float. Nasledujúca tabuľka sumarizuje rozdiely medzi typmi údajov float a double.

Základ float Typ údajov dvojitý typ údajov
Pamäť Zaberá 4 bajtov. Zaberá 8 bajtov.
Presnosť Jeho presnosť je nízka . Jeho presnosť je vysoká .
Presnosť Nasleduje to s jednou presnosťou (6-7 desatinných číslic). Nasleduje to dvojitá presnosť (15-16 desatinných číslic).
Použité kľúčové slovo The plavák kľúčové slovo sa používa na definovanie čísla s pohyblivou čiarou. The dvojitý kľúčové slovo sa používa na definovanie čísla s dvojnásobnou presnosťou.
Trieda obalov Jeho obalová trieda je java.lang.Float. Jeho obalová trieda je java.lang.Double.
Predvolený typ údajov Java ho nepoužíva ako predvolené číslo s pohyblivou rádovou čiarkou. To je predvolená dátový typ pre čísla s pohyblivou rádovou čiarkou.
Strata dát Tam bude žiadna strata dát ak prevedieme float na dvojnásobok. Tam bude strate dát ak prevedieme double na float.
Využitie Malo by sa použiť kde menšia presnosť je potrebné a skladovanie je obmedzením. Používa sa kde väčšiu presnosť vyžaduje a tiež vyžaduje väčšiu presnosť.
Prípona Používa sa F alebo f ako prípona. Ak deklarujete premennú typu float, je povinné pridať príponu. Používa sa d alebo D ako prípona. Ak deklarujete dvojitú premennú, je voliteľné pridať príponu.
zastupovanie 28,96f alebo 28,96F 12.5 alebo 12,5D alebo 12,5 d

Podobnosti medzi typom údajov float a double

  • Reálne čísla môžu byť reprezentované oboma typmi údajov.
  • Dátové typy float aj double nie sú presné, preto ide o približnú hodnotu.

Ktorý typ údajov s pohyblivou rádovou čiarkou v jazyku Java by sme mali použiť?

double je presnejší ako float. Takže, ak je potrebný presnejší a presnejší výsledok, použite dvojitý. Ďalším dôvodom na použitie double je, že ak číslo nezodpovedá rozsahu ponúkanému plavákom, použite double. Mali by sme použiť float, ak máme pamäťové obmedzenie, pretože zaberá polovičný priestor ako dvojnásobok.

java n-tice

Odporúčame vám použiť double over float, ak nie je obmedzená pamäť a priestor a ak je potrebná väčšia presnosť. Odporúča sa použiť float, ak je pamäť problém a výsledok v 16 presných desatinných čísliciach sa nevyžaduje.

Nasledujúce dve Java programy jasne ukazujú rozdiely medzi typom údajov float a 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 } } 

Výkon:

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

Výkon:

 x/y = 0.3333333333333333 

Z vyššie uvedených dvoch príkladov je jasné, že typ údajov double vyžaduje viac pamäte na uloženie čísla s dvojnásobnou presnosťou a tiež poskytuje presnejší výsledok až do 16 desatinných číslic. Zatiaľ čo dátový typ float zaberá menej miesta na ukladanie čísel s jednou presnosťou a poskytuje výsledky až na 6 desatinných miest.