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