From 8084702326a08b1a4417ce22184def46b20abd99 Mon Sep 17 00:00:00 2001 From: structix Date: Sat, 22 Jan 2022 23:40:01 +0100 Subject: [PATCH] Add cast --- PrimitiveDatentypen.java | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/PrimitiveDatentypen.java b/PrimitiveDatentypen.java index d329268..d32ce7e 100644 --- a/PrimitiveDatentypen.java +++ b/PrimitiveDatentypen.java @@ -19,7 +19,7 @@ public class PrimitiveDatentypen { // Befehl für eine Textausgabe auf dem Bildschirm: System.out.println("Hallo Welt"); - // Genug mit dem Into... + // Genug mit dem Intro... //----------------------------------------------------------------------------- // In Java gibt es Variablen, um Daten temporär zu speichern. Diese bekommen immer einen festen Typen zugewiesen, @@ -69,6 +69,31 @@ public class PrimitiveDatentypen { // / Division // + Addition // - Subtraktion + + // Beispiele: + int ganzzahlAddition = 1 + 1; + + int ganzzahlMultiplikation = 2 * 2; + System.out.println("Ergebnisse: Addition: " + ganzzahlAddition + " Multiplikation: " + ganzzahlMultiplikation); + + // Obacht! Ganzzahl Division kann schief laufen. Bsp.: + + // Rechne 2 / 4 ==> Ergebnis ist keine Ganzzahl. + int obachtDivision = ganzzahlAddition / ganzzahlMultiplikation; + System.out.println("Erwarte Zahl 1/2, Ergebnis: " + obachtDivision); + + // Begründung: Beide Zahlen sind Integer, weshalb eine Integer-Division ausgeführt wird. + // Dabei wird das Ergebnis ganz normal berechnet, jedoch alle Zahlen hinter dem Komma abgeschnitten. + // Bspw. würde 1.9 nicht zu 2 gerundet werden, sondern die 9 abgeschnitten, also Ergebnis 1. + + // Wie kann das behoben werden? + // Durch Casting! + // Casting bedeutet gießen auf Deutsch. Das heißt man "gießt" einen Datentypen in einen anderen. + // In die größer Richtung (kleiner nach größer, also bspw. int --> float --> double) geht das auch ohne Verluste. + // Die andere Richtung geht auch, jedoch mit Informationsverlust. + + double division = ganzzahlAddition / (double)ganzzahlMultiplikation; + System.out.println("Ergebnis Division: " + division); } }