logo

Float vs Double Java

V Javě, Javě.

Existují dva typy datových typů s plovoucí desetinnou čárkou:

  • float datový typ
  • dvojitý datový typ

Obě, float i double představují čísla s plovoucí desetinnou čárkou, která ukládají desetinné hodnoty.

nejlepší auta na světě
Typ dat s plovoucí desetinnou čárkou Hodnoty Velikost (bity)* Požadavky na úložiště (bajty) Výchozí hodnota Přesnost Desetinné číslice Rozsah Přesnost
plovák IEEE 754 s plovoucí desetinnou čárkou 32 4 0,0f Singl 6 desetinných číslic 3.4e-038 až 3.4e+038 Nízký
dvojnásobek IEEE 754 s plovoucí desetinnou čárkou 64 8 0,0 d Dvojnásobek 15 desetinných číslic 1,7e-308 až 1,7e+308 Vysoký

* Velikost bitů zahrnuje následující:

Bity plovák dvojnásobek
Podepsat 1 1
Exponent 8 jedenáct
Mantisa 23 52

Single-Precision: Skládá se z jeden znaménkový bit (S), osm exponent bity (E) a dvacet tři bity mantisy (M).

Dvojitá přesnost: Skládá se z jeden znaménkový bit (S), jedenáct exponent bity (E) a padesát dva bity mantisy (M).

Float vs Double Java

float datový typ

Jedná se o 32bitové číslo s plovoucí desetinnou čárkou s jednoduchou přesností IEEE 754 (Standard for Floating-Point Arithmetic). To znamená, že dává přesnost 6-7 desetinných míst. Používá se, pokud chceme efektivně využít paměť, protože zabírá méně paměti ve srovnání s dvojitým datovým typem. Abychom mohli definovat plovoucí hodnotu, musíme použít příponu f nebo F. Její výchozí hodnota je 0,0f. Ve výchozím nastavení jsou čísla s plovoucí desetinnou čárkou v Javě považována za dvojitá.

Pokud například definujeme plovoucí číslo jako:

 float height = 167.7 

Výše uvedená deklarace proměnné float udává chybu kompilace. Chybu můžeme opravit přidáním přípony f nebo F.

 float height = 167.7f or float height = 167.7F 

dvojitý datový typ

Datový typ double je 64bitové číslo s pohyblivou řádovou čárkou IEEE 754 s dvojitou přesností. To znamená, že dává přesnost 15-16 desetinných míst. Spotřebovává více paměti ve srovnání s datovým typem float. Používá se k ukládání desetinných hodnot. Jeho výchozí hodnota je 0,0 d. Je volitelné přidat příponu d nebo D. Například:

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

float vs double datový typ

Datový typ double je přesnější než datový typ float. Následující tabulka shrnuje rozdíly mezi datovými typy float a double.

Základ float datový typ dvojitý datový typ
Paměť To zabírá 4 bajtů. To zabírá 8 bajtů.
Přesnost Jeho přesnost je nízký . Jeho přesnost je vysoký .
Přesnost Následuje jediná přesnost (6-7 desetinných číslic). Následuje dvojitá přesnost (15-16 desetinných číslic).
Použité klíčové slovo The plovák klíčové slovo se používá k definování čísla s plovoucí čárkou. The dvojnásobek klíčové slovo se používá k definování čísla s dvojitou přesností.
Třída obalů Jeho obalová třída je java.lang.Float. Jeho obalová třída je java.lang.Double.
Výchozí typ dat Java jej nepoužívá jako výchozí číslo s pohyblivou řádovou čárkou. to je výchozí datový typ pro čísla s plovoucí desetinnou čárkou.
Ztráta dat tam bude žádná ztráta dat převedeme-li float na dvojnásobek. tam bude ztrátě dat převedeme-li double na float.
Použití Mělo by se použít kde menší přesnost je vyžadováno a skladování je omezení. Používá se kde větší přesnost je vyžadováno a také vyžaduje větší přesnost.
Přípona Používá F nebo F jako příponu. Pokud deklarujete proměnnou float, je povinné přidat příponu. Používá d nebo D jako příponu. Pokud deklarujete dvojitou proměnnou, je volitelné přidat příponu.
Reprezentace 28,96f nebo 28,96F 12.5 nebo 12,5D nebo 12,5 d

Podobnosti mezi datovým typem float a double

  • Reálná čísla mohou být reprezentována oběma datovými typy.
  • Datové typy float i double nejsou přesné, a proto se jedná o přibližné hodnoty.

Jaký datový typ s plovoucí desetinnou čárkou v Javě bychom měli použít?

double je přesnější než float. Pokud je tedy požadován přesnější a přesnější výsledek, použijte double. Dalším důvodem pro použití double je, že pokud se číslo nehodí do rozsahu nabízeného plovákem, použijte double. Měli bychom použít float, pokud máme paměťové omezení, protože zabírá poloviční prostor než dvojnásobek.

Doporučujeme vám použít double over float, pokud nemáte paměť a prostorové omezení a pokud je potřeba větší přesnost. Je vhodné použít float, pokud je paměť problém a výsledek v 16 přesných desetinných číslicích není vyžadován.

Následující dva Java programy jasně ukazují rozdíly mezi datovým typem 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ýstup:

latexový seznam
 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ýstup:

 x/y = 0.3333333333333333 

Z výše uvedených dvou příkladů je zřejmé, že datový typ double zabírá více paměti pro uložení čísla s dvojnásobnou přesností a také poskytuje přesnější výsledek až na 16 desetinných míst. Zatímco datový typ float zabírá méně místa pro uložení čísel s jednou přesností a dává výsledky až na 6 desetinných míst.