logo

Float vs. Double Java

Auf Java, Java.

Es gibt zwei Arten von Gleitkomma-Datentypen:

  • float-Datentyp
  • double-Datentyp

Sowohl float als auch double stellen die Gleitkommazahlen dar, die die Dezimalwerte speichern.

Gleitkomma-Datentyp Werte Größe (Bits)* Speicherbedarf (Bytes) Standardwert Präzision Dezimalziffern Reichweite Genauigkeit
schweben IEEE 754 Gleitkomma 32 4 0,0f Einzel 6 Dezimalstellen 3.4e-038 bis 3.4e+038 Niedrig
doppelt IEEE 754 Gleitkomma 64 8 0,0d Doppelt 15 Dezimalstellen 1.7e-308 bis 1.7e+308 Hoch

*Die Größenbits umfassen Folgendes:

Bits schweben doppelt
Zeichen 1 1
Exponent 8 elf
Mantisse 23 52

Mit einfacher Genauigkeit: Es besteht aus eins Vorzeichenbit (S), acht Exponentenbits (E) und 23 Mantissenbits (M).

Doppelte Genauigkeit: Es besteht aus eins Vorzeichenbit (S), elf Exponentenbits (E) und zweiundfünfzig Mantissenbits (M).

Float vs. Double Java

float-Datentyp

Es handelt sich um eine 32-Bit-Gleitkommazahl mit einfacher Genauigkeit nach IEEE 754 (Standard für Gleitkommaarithmetik). Das bedeutet, dass die Genauigkeit 6–7 Dezimalstellen beträgt. Es wird verwendet, wenn wir den Speicher effektiv nutzen möchten, da es im Vergleich zum doppelten Datentyp weniger Speicher benötigt. Um einen Float-Wert zu definieren, müssen wir ein Suffix f oder F verwenden. Der Standardwert ist 0,0f. Standardmäßig werden Float-Zahlen in Java als Double behandelt.

Wenn wir beispielsweise eine Gleitkommazahl wie folgt definieren:

 float height = 167.7 

Die obige Deklaration der Float-Variablen führt zu einem Kompilierungsfehler. Wir können den Fehler korrigieren, indem wir ein Suffix f oder F hinzufügen.

 float height = 167.7f or float height = 167.7F 

double-Datentyp

Der Double-Datentyp ist eine 64-Bit-IEEE 754-Gleitkommazahl mit doppelter Genauigkeit. Das bedeutet, dass die Genauigkeit 15–16 Dezimalstellen beträgt. Im Vergleich zum Float-Datentyp verbraucht er mehr Speicher. Es wird zum Speichern von Dezimalwerten verwendet. Der Standardwert ist 0,0d. Es ist optional, das Suffix d oder D hinzuzufügen. Beispiel:

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

float vs. double Datentyp

Der Double-Datentyp ist genauer als der Float-Datentyp. Die folgende Tabelle fasst die Unterschiede zwischen Float- und Double-Datentypen zusammen.

Basis float-Datentyp double-Datentyp
Erinnerung Es besetzt 4 Bytes. Es besetzt 8 Bytes.
Genauigkeit Seine Genauigkeit ist niedrig . Seine Genauigkeit ist hoch .
Präzision Es folgt mit einfacher Genauigkeit (6-7 Dezimalstellen). Es folgt Doppelte Genauigkeit (15-16 Dezimalstellen).
Verwendetes Schlüsselwort Der schweben Das Schlüsselwort wird verwendet, um eine Gleitkommazahl zu definieren. Der doppelt Das Schlüsselwort wird verwendet, um eine Zahl mit doppelter Genauigkeit zu definieren.
Wrapper-Klasse Seine Wrapper-Klasse ist java.lang.Float. Seine Wrapper-Klasse ist java.lang.Double.
Standarddatentyp Java verwendet es nicht als Standard-Gleitkommazahl. Es ist der Standard Datentyp für Gleitkommazahlen.
Datenverlust Es wird sein kein Datenverlust wenn wir Float in Double umwandeln. Es wird sein Datenverlust wenn wir double in float konvertieren.
Verwendet Es sollte dort eingesetzt werden, wo weniger Genauigkeit ist erforderlich und die Lagerung ist eine Einschränkung. Es wird dort verwendet, wo mehr Genauigkeit ist erforderlich und erfordert auch mehr Präzision.
Suffix Es benutzt F oder F als Suffix. Das Hinzufügen eines Suffixes ist obligatorisch, wenn Sie eine Float-Variable deklarieren. Es benutzt D oder D als Suffix. Das Hinzufügen eines Suffixes ist optional, wenn Sie eine Double-Variable deklarieren.
Darstellung 28,96f oder 28,96F 12.5 oder 12,5D oder 12,5 d

Ähnlichkeiten zwischen Float- und Double-Datentyp

  • Reelle Zahlen können durch beide Datentypen dargestellt werden.
  • Sowohl Float- als auch Double-Datentypen sind nicht präzise, ​​daher handelt es sich um Näherungswerte.

Welchen Gleitkomma-Datentyp in Java sollten wir verwenden?

double ist präziser als float. Wenn Sie also ein präziseres und genaueres Ergebnis benötigen, verwenden Sie „Double“. Ein weiterer Grund für die Verwendung von Double besteht darin, dass Double verwendet werden sollte, wenn die Zahl nicht in den vom Float angebotenen Bereich passt. Wir sollten float verwenden, wenn wir Speicherbeschränkungen haben, da es halb so viel Platz einnimmt wie doppelt.

Wir empfehlen Ihnen, Double Over Float zu verwenden, wenn keine Speicher- und Platzbeschränkung besteht und mehr Präzision erforderlich ist. Es empfiehlt sich, den Gleitkommawert zu verwenden, wenn der Speicher ein Problem darstellt und das Ergebnis nicht mit einer Genauigkeit von 16 Dezimalstellen benötigt wird.

Die folgenden zwei Java-Programme Zeigen Sie deutlich die Unterschiede zwischen Float- und Double-Datentypen.

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

Ausgabe:

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

Ausgabe:

 x/y = 0.3333333333333333 

Anhand der beiden oben genannten Beispiele wird deutlich, dass der Datentyp „double“ mehr Speicher zum Speichern einer Zahl mit doppelter Genauigkeit benötigt und außerdem ein genaueres Ergebnis mit bis zu 16 Dezimalstellen liefert. Während der Datentyp „float“ weniger Platz zum Speichern von Zahlen mit einfacher Genauigkeit benötigt und Ergebnisse mit bis zu 6 Dezimalstellen liefert.