CodeGym /Java-Blog /Random-DE /Java-Doppelschlüsselwort
Autor
Alex Vypirailenko
Java Developer at Toshiba Global Commerce Solutions

Java-Doppelschlüsselwort

Veröffentlicht in der Gruppe Random-DE
Das Java- Schlüsselwort double gibt wie in jeder anderen Sprache ein Computerformat zur Darstellung einer Gleitkommazahl an, das 64 Bit oder 8 Byte im Speicher belegt. In diesem Artikel werden wir über Double sprechen und uns einige Beispiele ansehen.

Gleitkomma und Rechnen: eine kurze mathematische Beschreibung

Bruchzahlen sind entweder Fest- oder Gleitkommazahlen. Die erste Option kann als regulärer Bruch dargestellt werden, wobei der Zähler (die Zahl selbst) und der Nenner (ihr Skalierungsfaktor) ganze Zahlen sind. Beispielsweise ist die Zahl 2,7 27 mit einem Skalierungsfaktor von 10, 3,14 - 314 mit einem Faktor von 100. Allerdings ist dieser Ansatz aus rechnerischer Sicht nicht sehr genau, weshalb häufig eine Gleitkommadarstellung verwendet wird. In der Informatik ist die Gleitkomma-Arithmetik eine spezielle arithmetische Darstellung reeller Zahlen als Näherung, um einen Kompromiss zwischen Bereich und Genauigkeit zu unterstützen. Das Hauptformat zur Darstellung von Gleitkommazahlen in Java heißt Float. Der Name kommt vom Gleitkomma. Float besteht aus 32 Bit, davon ist 1 Bit ein vorzeichenbehaftetes Bit, 8 Bit ein Exponent und 23 Bit ein Signifikant. Der Bereich liegt bei ±3. 40282347E + 38F, also 6-7 signifikante Ziffern. Der Name Double kommt von Double Float. DerDer Typ double ist doppelt so groß wie float : 8 Byte gegenüber 4. Er wird auch als reelle Zahl mit doppelter Genauigkeit bezeichnet. Von den 64 Bits, die für eine doppelte Zahl reserviert sind, ist 1 ein vorzeichenbehaftetes Bit, 11 Bits sind für den Exponenten und 52 Bits sind für den Signifikanten. Der Java- Doppelbruch speichert Zahlen im Bereich ±1,79769313486231570E + 308, also 15–16 signifikante Ziffern. Double ist ein präziseres Format. Wenn Sie also wirklich große Zahlen speichern müssen, ist es eine gute Idee, Double statt Float zu bevorzugen . Mathematische Methoden wie sqrt, sin oder cos und viele andere liefern übrigens doppelte Werte. Sie sollten jedoch für die doppelte Genauigkeit beim Speicher bezahlen.

Erstellen einer Double-Variable

Der Double- Typ wird zum Speichern reeller Zahlen verwendet. Um im Code eine Variable zu erstellen, die reelle Zahlen speichern kann, müssen Sie den folgenden Befehl verwenden:

double name;
Wobei Name der Name der Variablen ist.

double myPrice;  //here we create a variable called myPrice
double action; //and here -- action. 
Sie können auch Kurzschrift verwenden, um mehrere Variablen vom Typ double zu erstellen :

double name1, name2, name3;

Beispiele für Java-Doppelschlüsselwörter

Lassen Sie uns einige Beispiele für die Verwendung des Java- Schlüsselworts double zum Erstellen einer Variablen geben.

double myPrice = 5.0;
double height = 180;
double x = 7.1, y = 3.0;
Hier haben wir in der Variablen myPrice den Wert 5,0, in der Variablen height — 180, in x geben wir den Wert 7,1 und in y 3,0 ein .

Double als Ganzzahl

In Java können Double- Variablen sowohl reelle als auch ganzzahlige Zahlen zugewiesen werden. Bei der Zuweisung von ganzen Zahlen werden diese einfach in reelle Zahlen umgewandelt. Allerdings ist manchmal ein leichter Genauigkeitsverlust möglich.

double height = 180;
int k = 2; 
int i = 5; 
double myDouble = k*i;
Tatsächlich speichert die Variable height die Zahl 180,0 und die Variable myDouble die Zahl 10,0.

Doppelte und ganzzahlige Interaktion

Wenn außerdem in einem Ausdruck eine ganze Zahl und eine reelle Zahl beteiligt sind, wird die ganze Zahl zunächst in eine reelle Zahl umgewandelt und interagiert erst dann mit einer anderen reellen Zahl.

public class DoubleDemo {
   public static void main(String[] args) {
       int k = 2;
       double myDouble1 = 5;
       double myDouble = k*7.0;
       System.out.println(myDouble1);
       System.out.println(k*myDouble1);
       System.out.println(myDouble);
   }
}
In diesem Beispiel sieht die Ausgabe wie folgt aus:
5,0 10,0 14,0
Auch wenn die Zahl myDouble1 als 5 und nicht als 5.0 bezeichnet wird, sieht Java diese Zahl als double an , sodass sie tatsächlich wie 5.0 aussieht. Wenn wir int und double multiplizieren, erhalten wir immer ein double , auch wenn diese Zahl tatsächlich eine ganze Zahl ist. Wir können Variablen vom Typ double Variablen vom Typ int zuweisen . Dazu müssen Sie eine explizite Typkonvertierung durchführen. Natürlich wird der Bruchteil verworfen, die Zahl wird auf eine kleinere ganze Zahl gekürzt.

public class DoubleDemo {
   public static void main(String[] args) {
       double x = 57.789;
       int almostX;
       almostX = (int)x;
       System.out.println(almostX);
   }
}
Die Ausgabe ist:
57
Lassen Sie uns abschließend über die Teilung sprechen. Das ist das Interessanteste. Sie sind vielleicht schon auf die Tatsache gestoßen, dass wir, wenn wir zwei ganze Zahlen dividieren, als Ergebnis der Division eine ganze Zahl erhalten, auch wenn sie nicht gleichmäßig durcheinander teilbar sind:

public class DoubleDemo {
   public static void main(String[] args) {
       double myDouble = 7/2;
       System.out.println(myDouble);
   }
}
Das Ergebnis ist:
3,0
Dies liegt daran, dass die Java-Maschine zunächst zwei Ganzzahlen dividiert (und 3 erhält) und diesen Wert dann in einer Variablen vom Typ Double speichert und als Ergebnis 3,0 erhält. Um keine Ganzzahl, sondern eine normale Division zu erhalten, müssen Sie schummeln. Schreiben Sie beispielsweise eine der Zahlen als reelle Zahl (dann wird der gesamte Ausdruck automatisch in eine reelle Zahl umgewandelt). Wenn wir mit Variablen vom Typ Integer arbeiten, können diese mit 1,0 multipliziert werden. Dadurch wird der Wert nicht geändert, aber der Typ der Variablen wird von int in double geändert .

public class DoubleDemo {
   public static void main(String[] args) {
       double myDouble = 7.0/2;
       int x = 5;
       int y = 2;
       System.out.println(myDouble);
       System.out.println(x*1.0/y);
   }
}
Die Ausgabe ist:
3,5 2,5
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION