1. double
Typ
Java stellt den double
Typ für die Arbeit mit reellen (gebrochenen) Zahlen bereit. Es belegt 8 bytes
den Speicher (doppelt so viel wie der int
Typ) und kann Werte im Bereich von bis speichern . Zum Vergleich: Der Typ kann einen Wert im Bereich von bis speichern .-1.7*10308
+1.7*10308
int
-2*109
+2*109
Bei reellen Zahlen wird der Bruchteil hinter dem Komma geschrieben. Zum Beispiel 123,456 oder 2,5 oder 100,00 oder 0,01. Wenn Computer solche Zahlen verarbeiten, nennen wir sie Gleitkommazahlen .
Neben dem double
Typ haben wir übrigens auch den float
Typ (der nur 4 Byte groß ist). Der Name kommt von Fließkomma . Und der Name double
kommt von double float . A double
ist doppelt so groß wie a float
: 8 bytes
versus 4
. Sie wird auch als Gleitkommazahl mit doppelter Genauigkeit bezeichnet .
2. Erstellen eines double
Typs
Der Double-Typ wird zum Speichern reeller Zahlen verwendet. Um eine Variable im Code zu erstellen, die reelle Zahlen speichern kann, müssen Sie eine Anweisung wie diese verwenden:
double name;
Wobei Name der Name der Variablen ist. Beispiele:
Stellungnahme | Beschreibung |
---|---|
|
price Es entsteht eine reale Variable |
|
weight Es entsteht eine reale Variable |
|
lightSpeed Es entsteht eine reale Variable |
Wie beim int
Typ können Sie die Kurzschrift verwenden, um mehrere double
Variablen gleichzeitig zu erstellen:
double name 1, name 2, name 3;
Und weisen Sie ihnen sogar sofort Werte zu:
double name 1 = value 1, name 2 = value 2, name 3 = value 3;
Beispiele:
Stellungnahme | Notiz |
---|---|
|
Die Variable speichert5.0 |
|
Die Variable speichert2.0 |
|
3. Zuweisen von ganzen Zahlen und reellen Zahlen
Es wäre schlecht, wenn ganze Zahlen nur int
Variablen und reelle Zahlen nur double
Variablen zugewiesen werden könnten. Wir möchten in der Lage sein, zwischen den beiden Arten von Zahlen umzurechnen. Und Java bietet diese Fähigkeit.
Erstens können Variablen sowohl reelle als auch ganze Zahlen zugewiesen werden double
. Bei der Zuweisung von ganzen Zahlen werden diese einfach in reelle Zahlen umgewandelt. Natürlich kann dabei ein Teil der Genauigkeit verloren gehen.
Stellungnahme | Notiz |
---|---|
|
Die Variable speichert5.0 |
|
Die Variable speichert2.0 |
|
Die x Variable speichert1000000.0 |
Zweitens: Wenn in einem Ausdruck eine ganze Zahl und eine reelle Zahl beteiligt sind, wird die ganze Zahl zunächst in eine reelle Zahl umgewandelt und erst dann die Operation mit der anderen reellen Zahl durchgeführt.
Stellungnahme | Notiz |
---|---|
|
Die x Variable speichert5000.0 |
|
Die Nummer 10 wird auf dem Bildschirm angezeigt |
|
Die Nummer 10.0 wird auf dem Bildschirm angezeigt |
Und schließlich ist es auch möglich, Variablen reelle Zahlen zuzuordnen int
. Dabei wird der Bruchteil der reellen Zahl verworfen – die Zahl wird auf die nächste ganze Zahl abgerundet.
Darüber hinaus verlangt der Compiler vom Programmierer, dass er explizit dokumentiert, was passiert (um sicherzustellen, dass andere Programmierer verstehen, dass der Bruchteil weggelassen wird). Im Allgemeinen sieht eine solche Konvertierung im Code so aus:
integer_variable = (int)(real_number);
Beispiele:
Stellungnahme | Notiz |
---|---|
|
Die x Variable speichert5 |
|
Die x Variable speichert5 |
|
Die x Variable speichert11 |
4. Division von ganzen Zahlen und reellen Zahlen in Java
Bei der Division einer ganzen Zahl durch eine ganze Zahl wird der Rest immer verworfen. Wie können wir dann 5
durch dividieren, 2
um zu erhalten 2.5
?
Auf den ersten Blick scheint die richtige Option zu sein:
double d = 5 / 2;
Aber es ist nicht so einfach. Das Problem dabei ist, dass die Java-Maschine zunächst den Wert von berechnet 5 / 2
und erst dann das Ergebnis der d
Variablen zuordnet. Und die 5 / 2
Operation ist eine ganzzahlige Division. Das heißt , d
wird enthalten 2
oder genauer gesagt:2.0
Die richtige Lösung besteht darin , mindestens eine der an der Division beteiligten Zahlen als reelle Zahl (also mit Dezimalpunkt) zu schreiben :
double d = 5.0 / 2;
double d = 5 / 2.0;
double d = 5.0 / 2.0;
In jedem der Ausdrücke d
wird enthalten2.5
Aber was ist, wenn wir mit Variablen arbeiten? Was wäre, wenn wir Code wie diesen hätten?:
int a = 5;
int b = 2;
double d = a / b;
Hier gibt es eine raffinierte (und offensichtliche) Lösung: Erzwingen Sie, dass die Java-Maschine Variablen in reelle Zahlen umwandelt, indem Sie sie mit eins als reelle Zahl multiplizieren ( 1.0
)
int a = 5;
int b = 2;
double d = a * 1.0 / b;
Beachten Sie, dass Multiplikation und Division die gleiche Priorität haben und von links nach rechts ausgeführt werden. Das bedeutet, dass es wichtig ist, wo wir die 1,0 multiplizieren.
Beispiele:
Stellungnahme | Reihenfolge der Ausführung | Ergebnis |
---|---|---|
|
(1.0 * a) / b; |
2.5 |
|
(a * 1.0) / b; |
2.5 |
|
(a / b) * 1.0; |
2.0 |
GO TO FULL VERSION